一、从“Web安全”关键词讲起
web安全,从语法上判断,这是一个合成词。
web——万维网,是一个透过互联网访问的,由许多互相链接的超文本组成的系统,也是互联网的基石。
安全——可以控制特定已被识别的危害,使风险在一定可接受的水准以下,因此也可以减少一些造成健康或经济损失的可能性。
二、聊聊浏览器及其安全攻防策略
2.1 同源协议
同源策略是由Netspace提出来的一种安全策略。
URL格式:
同源的源由一个URL的协议(protocol)、主机(host)、端口(port)定义,如果这三者一致,那么就是同源。反之,任何一个条件不满足,便是跨域。
浏览器针对同源协议的安全策略:
不同源之间的XMLHttpRequest不被允许,即在服务端默认未开启CORS(跨域资源共享Access-Control-Allow-Origin)权限设置的时候,JavaScript无法向非同源协议发起访问
另外:同源协议只针对ajax请求,所以例如表单提交,script标签,img标签中的src以及其他例如video audio之类的标签,websocket中非同源的内容都是允许的。
2.2 浏览器沙箱环境
现代浏览器采用多进程架构。 如Chrome的主要进程分为:浏览器进程、渲染进程、插件进程、扩展进程。
也就是说,浏览器打开任何一个网站,都会同时启动四个新的进程。
其中渲染进程,就是web网页中使用的进程。渲染引擎由Sandbox隔离,网页内容要与浏览器内核进程通信要过IPCchannel,在其中进行安全检查。JavaScript所能执行的功能,就被牢牢地限定在这个进程中,所以web网站的权限相当有限(这也是为什么各大厂商都疯狂推荐客户端而非使用能替代的h5网页,毕竟用户信息能卖钱)。