目录
我们默认页面中可以引用任意第三方资源,然后又引入了CSP策略来加以限制;默认XMLHttpRequest和Fetch不能跨站请求资源,然后又通过CORS策略来支持其跨域。
不支持页面中的第三方资源引用和CORS也带来了许多问题,其中最典型的就是XSS攻击
什么是XSS攻击
XSS全称“Cross Site Scripting”,为了和“CSS”区分开来,简称XSS,意思就是“跨站脚本”。XSS攻击时黑客往HTML文件中或者DOM中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。
当页面注入了恶意的JavaScript脚本时,浏览器无法区分这些脚本是恶意注入的还是正常的页面内容,所以恶意注入JavaScript脚本也能拥有所有的脚本权限。这些权限包括:
-
窃取Cookie:document.cookie可以获取Cookie信息,然后通过XMLHttpRequest或者Fetch加上CORS将数据发送给恶意服务器
-
监听用户行为:使用addEventListener接口监听键盘事件,例如可以获取用户输入的信用卡等信息,然后发送给恶意服务器
-
修改DOM,伪造假的登录窗口,来欺骗用户输入用户名和密码等信息
-
在页面内生成浮窗广告,严重影响用户体验