前端安全:CSRF、XSS该怎么防御?

近几年随着业务的不断发展,前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来,梳理一些场景的前端安全问题和对应的解决方案。

XSS攻击介绍

XSS是后端的责任,后端应该在用户提交数据的接口对隐私敏感的数据进行转义。

NO,这种说法不对

所有插到页面的数据,都要进行过滤转移,当没有敏感字符的时候,就可以直接插到页面上显示了。

NO,丝毫没有什么作用

XSS攻击是页面被注入了恶意的代码,利用恶意脚本,攻击者可以获取用户的Cookie、SessionID等敏感信息。

XSS注入的方法:

  • 在HTML中内嵌的文本中,恶意内容通过script标签注入
  • 在内联的JS中,拼接的数据突破了原本的限制
  • 在标签属性中,恶意内容包含引导,从而突破属性值的限制
  • 在标签href、src等属性中,包含javascript:可执行代码
  • 在onload、onerror、onclick事件中,注入不受控制的代码
  • 在style属性中,类似background- image: url("javascript:..")代码

如果开发者没有将用户输入的文本进行合适的过滤,直接插入到HTML中,很容易造成注入漏洞。

XSS攻击的分类

存储型XSS

其攻击步骤如下:

  1. 攻击者将恶意代码提交到目标网站的数据库
  2. 用户打开目标网站,服务端将恶意代码取出,拼在HTML中返回给浏览器
  3. 用户浏览器解析执行,混在HTML中的恶意代码也被执行
  4. 恶意代码窃取用户数据,冒充用户,执行攻击者制定的操作

常见场景:论坛发帖、商品评论、私信

反射型XSS

其攻击步骤如下:

  1. 攻击者构造特殊URL,其中包含恶意代码
  2. 用户点击打开该URL,服务端将恶意代码从URL中取出,拼接在HTML中返回给浏览器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰卤工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值