在您按下提交的以下代码中,iframe
加载了textbox
中提到的网址。这不违反not allowing cross domain request
吗?我正在使用mozilla 14.0。
<!DOCTYPE html>
<head>
<script>
function myFunction()
{
document.getElementById("site").src=document.getElementById("web").value;
}
</script>
</head>
<body>
<input id="web" type="text" name="user">
<input type="submit" value="Submit" onclick="myFunction()"> <br/>
<iframe id="site" src="" width="1200" height="1200"></iframe>
</body>
</html>
答案 0 :(得分:1)
不,这不是违规行为,完全有效。
同源策略阻止访问不同域上的页面上的方法和属性。它还可以防止修改包含的网页。但是并不妨碍你将它整体包含在内(甚至以有限的方式与它进行交互)。
基本上,此政策会阻止网站A在网站B上构成用户。
想象一下,您访问了您的银行帐户(bank.com)。当您登录时,银行网站会为您生成“用户环境”,使您可以访问受限制的内容。此外,它还允许您通过http请求(表单提交或Ajax请求)修改您的银行帐户。
网站信任您,因为您已经证明您就是您所说的人并且您信任该网站,因为您知道无论出于何种意图和目的,除了您可以与您的银行网站进行互动时安全的环境。
现在假设您访问了另一个标签(evilweb.com)上的恶意网站,该标签与您的银行网站有一个iframe。如果没有这项政策,evilweb.com可能会像你一样,进入禁区,阅读DOM信息(银行账号等),甚至与之互动,点击转账资金按钮并清理银行账户。甚至可以隐藏iframe。
然而,没有什么能阻止 evilweb.com “下载”bank.com的公共内容,就像我没有访问凭据一样,没有什么能阻止我访问公共网站。
所以,基本上,evilweb.com可以直接向bank.com提出请求,但它不能捎带你并代表你提出请求。
答案 1 :(得分:0)
没有。一个域与另一个域之间没有数据传输。
从安全角度来看,导航框架的URL来自用户输入或任何其他来源是完全无关紧要的。
如果您尝试将内部内部的数据提取到外部世界或操纵iframe的内容,那将违反同源政策,并且会失败。< / p>
答案 2 :(得分:0)
不,可以加载页面。但是,您将无法访问iframed跨源文档的内容。
答案 3 :(得分:0)
JavaScript没有对外部页面做任何事情,因此没有跨域问题。您所做的所有代码都是通过iframe来加载网址。