客户端脚本安全 书摘
来源:互联网 发布:下载站的网站源码 编辑:程序博客网 时间:2024/05/16 17:04
摘自:《白帽子讲Web安全》吴翰清 著 电子工业出版社
2.1同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能。可以说web是构建在同源策略的基础上的,浏览器只是针对同源策略的一种实现。
浏览器的同源策略,牵制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。
例:在b.com加载的一段JavaScript脚本可以涂改b.com的页面。但在,根据同源策略,a.com中的一段JavaScruot脚本,在b.com未曾加载此脚本时不能随意涂改b.com的页面。
浏览器中JavaScript的同源策略(当JavaScript被浏览器认为来自不同源时,请求被拒绝)
影响“源”的因素有:host(域名或IP地址,如果是IP地址则看做一个根域名)、子域名、端口、协议。
对于当前页面来说,页面内存放JavaScript文件的域并不重要,重要的是加载JavaScript页面所在的域是什么。js的源是加载了该js的那个,而不是存放js文件的那个。
浏览器中,<script>、<img>、<iframe>、<link>等标签都可以跨域加载资源,而不受同源策略的限制。这些带“src”属性的标签每次加载时,实际上是由浏览器发起了一次GET请求。不同于XMLHttpRequest的是,通过src属性加载的资源,浏览器限制了JavaScript的权限,使其不能读、写返回的内容。
XMLHttpRequest可以访问来自同源对象的内容,但它受到同源策略的约束,不能跨域访问资源。(如果XMLHttpRequest能跨域访问资源,则可能会导致敏感数据泄露,比如CSRF的token。)
W3C制订了XMLHttpRequest跨域访问标准,他需要通过目标域返回的HTTP头来授权是否允许跨域访问,因为HTTP头对于JavaScript来说一般是无法控制的(此方案的安全基础“JavaScript无法控制HTTP头”,当此信任基础被打破,方案失效)。
浏览器,除了DOM、Cookie、XMLHttpRequest会收到同源策略的限制外,浏览器加载的一些第三方插件也有各自的同源策略。(常见插件如Flash、Java Applet、 Silverlight、 Google Gears)
例子:
以Flash为例,它主要通过目标网站提供的crossdomain.xml文件判断是否允许当前“源”的Flash跨域访问目标资源。
- 客户端脚本安全 书摘
- 客户端脚本安全
- 白帽子-第二篇 客户端脚本安全
- 常见web攻击-客户端脚本安全
- <Linux Shell脚本攻略>书摘
- 书摘
- 书摘
- 书摘
- 书摘
- 客户端脚本
- 客户端脚本
- 客户端脚本
- 服务器端脚本&&客户端脚本
- 移动设备客户端安全
- Android 客户端安全指南
- 解析客户端脚本、服务器端脚本
- ATL脚本安全
- 生产安全加固脚本
- hdu 1142 A Walk Through the Forest 最短路
- 第一章:计算机网络概述
- (http://fonts.googleapis.com/css?)打开很慢解决方案
- Linux Shell自定义快捷指令
- POJ 2431 Expedition
- 客户端脚本安全 书摘
- %%%% Error Creating SessionFactory %%%%
- 显性游标嵌套
- source insight快捷键及使用技巧
- 关于Android工程的 Unable to execute dex: Multiple dex files define ...... 报错
- 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
- HDU-1232 畅通工程(并查集)
- cocos2dx 3.2 打包APK出错
- Android获取三轴方向基础知识