3

別のドメインを指す 1 つのドメイン iframe を含むページに配置します。すべて正常に動作します。その後、iframe フォームにPOSTメソッドで送信し、返信が来ると Internet Explorer でエラーが発生します

Internet Explorer has modified this page to help prevent cross-site scripting

GETでフォームを送信すると、すべて正常に動作します。

なぜ問題が発生するのですか? どうすれば修正できますか?iframe をホストするページにアクセスできない場合、修正できますか?

4

2 に答える 2

0

通常、これは、要求内の何かが応答内にもある場合に発生します。例えば:

http://example.com/somepage?name=%3Cscript%3Ealert(%22lol%20hax%22%2Bdocument.cookie)%3B%3C%2Fscript%3E

したがって、この問題は、iframeに投稿する内容に完全に依存します。とにかく、原則としてクロスドメインiframeの使用はおそらく避けるべきです。

于 2013-01-17T20:03:41.990 に答える
0

私が知っている古い質問ですが、Nietはこの問題について正しいです。解決策は、その特定のページで CORS を有効にすることです。完全な内訳: http://www.html5rocks.com/en/tutorials/cors/

PHPの場合、私が使用したソリューションは次のとおりです。

$http_protocolPos = stripos($_SERVER['SERVER_PROTOCOL'], '/');
$http_protocol = strtolower(substr($_SERVER['SERVER_PROTOCOL'], 0, $http_protocolPos)).'://'; 
$http_serverName = $_SERVER['SERVER_NAME'];
$httpFull = $http_protocol . $http_serverName;

if ($httpFull == "{$http_protocol}www.example1.com" || $httpFull == "{$http_protocol}www.example2.com" || 
    $httpFull == "{$http_protocol}localhost" )
{  
    header("Access-Control-Allow-Origin: $httpFull");
}

Microsoft のドキュメントから、これも同様に機能する可能性があります。

header("X-XSS-Protection: 0");

しかし、私はそれについて推測しているだけです。

于 2014-05-07T16:20:45.167 に答える