2011-12-13 8 views
6

私はPOSTを使用する非常にシンプルなHTMLフォームを持っており、そのアクションは自分のWebサーバー上でPHPスクリプトを呼び出します。HTMLフォームPOSTクロスドメイン

ここはキッカーです...フォームを含むhtmlは、同じサーバー上にホストされず、別のドメインに存在します。この質問を説明のつぶやきにすることなく、これはビジネス上の理由から行われなければならない。これらの特定のドメイン内に存在する必要があります。

フォームを送信すると、PHPスクリプトに正しくアクセスしましたが、POSTデータを取り出して削除しました。 PHPと同じサーバー上に一時的にフォームを置くのでセキュリティ上の問題だと思っています。

私はこれを2つの別々のドメインで動作させる方法がありますか?前もって感謝します。

編集:

PHPコード(emailTemplate.php):

<?php 
var_dump($_POST); 
?> 

HTMLフォーム:

<form name="emailForm" id="emailForm" method="post" onsubmit="return beforeSubmit();" action="https://***.***.com/emailTemplate.php"> 
    <textarea rows="15" cols="75" id="myHtmlText" name="myHtmlText"></textarea> 
    <input type="text" id="toAddr" name="toAddr" size="60"/> 
    <input type="text" id="fromAddr" name="fromAddr" size="60"/> 
    <input type="text" id="subjectLine" name="subjectLine" size="60"/> 
    <input type="submit" name="Submit" value="Email Letter"> 
</form> 
+0

理論的には、何をしていても何の問題も起こりません。 (a)POSTデータを受け取っているPHPスクリプトにエラーがあるか、それを送信しているWebフォームにエラーがあるか、ポストをブロックしているPHPスクリプトやサーバー設定に何らかのセキュリティ対策があります。残念ながら、私たちができることは、コードの一部を投稿できない限り、推測です。 – Aaron

+0

@Aaronそれがまったく役に立ったらコードを追加しました。ありがとう。 – jcmitch

+0

Firefoxでは動作しますがIEでは動作しません。 IEはXSSの警告を出します。 – jcmitch

答えて

5

あなただけのIEで問題が発生している場合は、そのXSSフィルタしてもよいです責任がある。 This articleには、無効にするための詳細が記載されています。

この問題を完全に回避するには、サーバー上のPHPスクリプトにフォームをポストし、そのスクリプトでフォームを別のスクリプトにポストするcURLセッションを作成してください。 XSSトランザクションは、クライアントのWebブラウザとは独立して行われ、プロセス内でこれらのブラウザベースのセキュリティ制限を回避します。

+0

ありがとう!素晴らしい仕事を! – jcmitch

+0

結果に相対URLが含まれていると、これは機能しません。クライアントは、リモートドメインではなく、自分のドメインを基準にしてこれらのURLを解釈します。 – Barmar

関連する問題