XSS跨站脚本攻击

浏览器的同源策略表现在以下三个方面:

  1. DOM:限制来自不同源的javascript脚本对当前DOM对象的读写操作
  2. 数据:限制不同源站点读取当前站点的cookie/indexDB/localStorage等信息
  3. 网络:限制通过 XMLHttpRequest 等方式将站点的数据发送给不同源的站点

同源策略也出让了一些安全性,以提高灵活性:

  • 页面中可以引入第三方资源

遭遇XSS攻击,为了解决XSS,浏览器引入CSP(内容安全策略),让服务器决定浏览器可以加载哪些资源,让服务器决定浏览器是否能够执行内联的javascript代码

  • 跨域资源共享(CORS)和跨文档消息机制

CORS解决了跨域请求的限制;跨文档消息机制,可以通过window.postMessage的JavaScript接口来和不同源的dom通信

XSS攻击:黑客往页面中注入恶意脚本,然后将页面的一些重要数据上传到恶意服务器。

根据恶意代码注入的方式可以划分一下三种类型XSS:

  • 存储型

黑客将恶意代码存储到服务器,用户在浏览含有恶意代码的页面时,恶意脚本执行,盗取用户信息

  • 反射型

黑客将恶意代码以请求的参数发送给服务器,服务器将次恶意代码以参数形式返回客户端

  • 基于DOM

通过网络劫持修改html页面内容

恶意脚本可以做哪些事情:

  1. 窃取cookie信息,javascript通过document.cookie
  2. 监听用户行为:addEventListener
  3. 修改DOM伪造登录表单
  4. 在页面中生成浮窗广告,影响用户体验

防范XSS:

服务器对输入脚本进行过滤和转码

充分利用CSP

  • 限制加载其他域下的资源文件,这样即使黑客插入了一个 JavaScript 文件,这个 JavaScript 文件也是无法被加载的;
  • 禁止向第三方域提交数据,这样用户数据也不会外泄;
  • 禁止执行内联脚本和未授权的脚本;
  • 还提供了上报机制,这样可以帮助我们尽快发现有哪些 XSS 攻击,以便尽快修复问题。

设置cookie为HttpOnly

添加验证码防止脚本冒充用户提交危险

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值