1.web安全
Web安全的本质是信任问题
•由于信任,正常处理用户恶意的输入导致问题的产生
•非预期的输入(就是不是程序员预期的客户的输入)
安全是木桶原理,短的那块板决定的木桶世纪能装多少水,同样的,假设把99%的问题都处理了,那么1%的余留会是造成安全问题的那个短板
2.当我们访问一个网址的时候,这中间发生了什么?
•输入网址
•浏览器查找域名的IP地址
•浏览器给Web服务器发送一个HTTP请求
•服务端处理请求
•服务端发回一个HTTP响应
•浏览器渲染显示HTML
3.cookie与session的区别
(1)cookie通常的数据保存在客户端浏览器,session保存在服务器
(2)服务端保存状态机制需要在客户端做标记,所以session可能借助cookie机制
(3)cookie通常用于客户端保存用户登录状态
cookie
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725194721325-305410258.png)
字段 | 说明 |
Name | Cookie名称 |
Value | Cookie的值 |
Domain | 用于指定Cookie的有效域 |
Path | 用于指定Cookie的有效URL路径 |
Expires | 用于设定Cookie的有效时间 |
Secure | 如果设置该属性,仅在HTTPS请求中提交Cookie |
Http | 其实应该是HttpOnly,如果设置该属性,客户端JavaScript无法获取Cookie值 |
seesion
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725194858153-1174914582.png)
字段 |
说明 |
Key |
Session的key |
Value |
Session对应key的值 |
4.浏览器解析顺序和浏览器解码顺序
(1)解析顺序
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725190646669-1880674760.png)
(2)解码顺序
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725190757497-1389117865.png)
5.DOM树
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725191106794-2078174535.png)
6.浏览器特性与安全策略
(1)同源策略
同源策略规定:不同域的客户端脚本在没明确授权的情况下,不能读写对方的资源。
同域与不同域:
顶级域名:不带www的
二级域名:带www的
下面是与www.test.com同域情况
域名 | 是否同域 | 原因 |
https://www.test.com | 不同域 | 协议不同,HTTP与HTTPS为不同协议 |
http://fooying.test.com | 不同域 | 域名不同,www与fooying为不同的子域 |
http://test.com | 不同域 | 域名不同,顶级域与www为不同子域 |
http://www.test.com:81 | 不同域 | 端口不同,81与默认的80为不同端口 |
http://www.test.com/fooying | 同域 | 只是多了目录,符号协议、域名、端口相同 |
授权
HTTP响应头返回
Access-Control-Allow-Origin:http://www.fooying.com
7.沙箱框架(Sandboxed frame)
(1)是对常规的<iframe>表现行为的扩展,它能让顶级页面对嵌入的子页面及这些子页面的子资源设置一些额外的限制。
(2)通过<iframe>的参数实现限制,如,可以在<iframe sandbox="allow-scripts allow-forms">,比如百度搜索,如果没有这allow-forms,则页面跳转不了
参数 |
说明 |
Allow-scripts |
是否允许执行JavaScript脚本,没有则不允许 |
Allow-forms |
是否允许使用form表单,没有则不允许 |
Allow-top-navigation |
是否允许嵌入子页面控制顶级窗口的地址跳转,没有则不允许 |
Allow-same-origin |
是否允许访问同源数据,没有则不允许 |
8.Flash安全沙箱(用来播放flash的)
分为本地沙箱和远程沙箱
类似于同源策略,在统一域名内的资源会被放到一个安全组下,称为安全沙箱
Web站点通过crossdomain.xml文件配置可以提供允许的域, 跨域访问本域上内容的权限(放于站点根目录)
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725201343450-1788986634.png)
9.cookie安全策略
Domain | 用于指定Cookie的有效域 |
Path | 用于指定Cookie的有效URL路径 |
Secure | 如果设置该属性,仅在HTTPS请求中提交Cookie |
Http | 其实应该是HttpOnly,如果设置该属性,客户端JavaScript无法获取Cookie值 |
10.内容安全策略(Content Security Policy)CSP
通过编码在http响应头中的指令来实施策略
如:Content-Security-Policy:script-src 'self' https://www.test.com
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725202430497-1395263679.png)
![](https://images2015.cnblogs.com/blog/964016/201607/964016-20160725202450528-102319437.png)