in a frame because it set 'X-Frame-Options' to 'sameorigin'

我是打算在php网站中的一个HTML文件使用iframe标签调用django网站时遇到的问题,这句话说得好像有点繁琐,就是使用iframe时遇到的问题。查了很多相关资料,又说php网站的,有说html中没有设置,有说apache中需要配置,我全部尝试一遍之后都没有解决,后知后觉,发现django中间件问题。先了解一下背景知识。

1.同源策略

什么叫同源?

URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。相反,只要协议,域名,端口有任何一个的不同,就被当作是跨域。

e.g. 对于http://store.company.com/dir/page.html进行同源检测:

URL 结果 原因
http://store.company.com/dir2/other.html 成功 仅路径不同
http://store.company.com/dir/inner/another.html 成功 仅路径不同 
https://store.company.com/secure.html 失败 协议不同
http://store.company.com:81/dir/etc.html 失败 端口不同
http://news.company.com/dir/other.html 失败 主机名不同

 

同源策略  Same-Origin-Policy(SOP)

浏览器采用同源策略,禁止页面加载或执行与自身来源不同的域的任何脚本。换句话说浏览器禁止的是来自不同源的"document"或脚本,对当前"document"读取或设置某些属性。

情景:

比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。

 

浏览器中有哪些不受同源限制呢?

你可能感兴趣的:(Django,错误解决,html)