首页 > 如何理解javascript同源策略?

如何理解javascript同源策略?

如题,如果能通俗易懂地讲解一下更好。


简单的说就是在同一域名下属于同源,这里的同一域名是只二级、三级、N级域名,协议,端口都一样。

http://www.f2eer.com/xxx/aaa.html 成功
http://www.f2eer.com/xxx/ccc/aaa.html 成功
https://www.f2eer.com/aaa.html 失败 协议不同
http://www.f2eer.com:81/xxx/aaa.html 失败 端口不同
http://demo.f2eer.com/xxx/aaa.html 失败 域名不同


一篇 帮助我理解的博文:
http://www.cnblogs.com/twobin/p/3395086.html


参考了一些资料,这里简单自己回答一下。
首先,域名同源是指协议(http/https)、主机名、端口号相同,才能叫做域名同源。
javascript同源策略的一个比较重要的限制是运用在ajax上。一个页面的js只能向域名同源的服务器发起ajax请求,比如http://a.com/index.html 上的js,就不能对http://b.com/restapi/user/info?id=1发起ajax请求。


概念:同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。

这里的同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议。
指一段脚本只能读取来自同一来源的窗口和文档的属性。

为什么要有同源限制?

我们举例说明:比如一个黑客程序,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。

【热门文章】
【热门文章】