跨域请求可能吗?

时间:2013-02-08 16:10:19

标签: javascript html cross-domain

在您按下提交的以下代码中,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>

4 个答案:

答案 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来加载网址。