我放置在具有指向另一个域的一个域 iframe 的页面上。一切正常。然后我通过POST方法发送到 iframe 表单,当回复时,Internet Explorer 生成错误
Internet Explorer has modified this page to help prevent cross-site scripting
当我通过GET发送表单时,一切正常。
为什么会出现问题?我该如何解决?如果我无法访问托管 iframe 的页面,我可以修复它吗?
我放置在具有指向另一个域的一个域 iframe 的页面上。一切正常。然后我通过POST方法发送到 iframe 表单,当回复时,Internet Explorer 生成错误
Internet Explorer has modified this page to help prevent cross-site scripting
当我通过GET发送表单时,一切正常。
为什么会出现问题?我该如何解决?如果我无法访问托管 iframe 的页面,我可以修复它吗?
我知道老问题,但 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");
但我只是猜测那个。
当请求中的某些内容也在响应中时,通常会发生这种情况。例如:
http://example.com/somepage?name=%3Cscript%3Ealert(%22lol%20hax%22%2Bdocument.cookie)%3B%3C%2Fscript%3E
所以这个问题完全取决于你发布到 iframe 的内容。作为一般规则,您可能应该避免使用跨域 iframe。