同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能。
同源是指host、子域名、端口、协议。
在浏览器中,一些标签(<script>、<img>、<iframe>、<link>等)是可以跨域加载资源的
而不受同源策略影响的。
对于浏览器来说,除了dom、cookie、xhr(CORS)会受到同源策略限制外,浏览器加载的一些
第三方插件也有各自的同源策略。比方说,flash它主要通过目标网站提供的
crossdomain.xml文件判断是否允许当前“源”的flash跨域访问目标资源。
浏览器通过多进程架构和sandbox的保护,提高安全性。浏览器还会周期性地从服务端获取
一份最新的恶意网址黑名单,实现对恶意网址的拦截。
XSS(跨站脚本攻击):通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而
在用户浏览网页时,控制用户浏览器的一种攻击。
反射型XSS:恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶
意链接来实施攻击的。
存储型XSS:恶意代码会被存储在服务器端。
常见的XSS payload(恶意脚本),通过读取浏览器Cookie对象(OAuth),从而发起“cookie挟
持”攻击。
XSS攻击利用的技巧:利用字符编码,绕过长度限制(location.hash本身没有长度限制,但
是浏览器的地址栏是有长度限制的,要是地址栏的长度也不够用,还可以再使用加载远程JS
的方法,来写更多的代码),使用<base>标签,window.name(很多时候window对象不受同源
策略限制)等。
XSS防御:
Cookie的“HttpOnly”标识可以防止“Cookie劫持”。
验证码、修改密码前输入旧密码这样的功能都能有效的防止XSS payload。但这并不能限制
住XSS攻击。
输入检查(客户端和服务端都检查)
原文:https://www.cnblogs.com/Dida-1209/p/10664332.html