3

我放置在具有指向另一个域的一个域 iframe 的页面上。一切正常。然后我通过POST方法发送到 iframe 表单,当回复时,Internet Explorer 生成错误

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

当我通过GET发送表单时,一切正常。

为什么会出现问题?我该如何解决?如果我无法访问托管 iframe 的页面,我可以修复它吗?

4

2 回答 2

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-保护:0");

但我只是猜测那个。

于 2014-05-07T16:20:45.167 回答
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 回答