前端防暴盾:前端安全”反黑风暴“

59 阅读3分钟
  1. 总览

  1. XSS Cross Site Script 跨站脚本攻击

  2. CSRF Cross Site Request Forgery 跨站请求伪造

    1. 它利⽤⽤户已登录的身份,在⽤户毫不知情的情况下,以⽤户的名义完成⾮法操作
  3. 页面劫持 : 使用HTTPS就行了

    1. 攻击者通过请求的数据传输过程进行数据修改,或者对网站域名进行泛域名解析以重定向网站,在网站中注入广告等
  4. iframe安全

  5. SQL注入 sql是我们学习数据库的一种语言,而注入就代表是从前端对数据库下手

  6. OS注入和SQL注入差不多

  7. 请求劫持 DNS劫持,访问的不是预期IP

  8. DDOS distributed denial of service

XSS

  • 反射型 XSS:恶意脚本通过URL参数传递给服务器,然后被反射到页面上。
  • 存储型 XSS:恶意脚本被存储在服务器上,每次用户访问页面时都会执行。
  • DOM XSS:恶意脚本直接操作DOM,影响页面行为。

防御措施:

  • 验证和过滤
  • 输出编码
  • HTTP头部CSP, Content Security Policy,设置白名单
  • 使用框架,并且不用 dangerouslySetInnerHTML

CSRF

攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

防御手段

  • 禁止第三方网站携带cookie (SameSite Cookie
  • CSRF Token 校验 一次性token验证
  • 双重cookie验证 实际上就是使用了一个token,但是也通过cookie传送
  • SameSite: Strict 阻止向不同的域名发送请求携带cookie
  • 检查referer Header和 Origin Header来进行同源验证
  1. SSRF(Server-Side Request Forgery)

利用一个可以发出请求的网站或者服务为跳板访问内网的攻击方式

  • 过滤返回的消息
  • 限制端口,限制协议,设置内网白名单

iframe安全

  1. 点击劫持 是⼀种视觉欺骗的攻击⼿段。攻击者将需要攻击的⽹站通过iframe嵌套的⽅式嵌⼊⾃⼰的⽹⻚中,并将 iframe 设置为透明,在⻚⾯中透出⼀个按钮诱导⽤户点击。
  2. 禁止自己的 iframe 中的链接外部网站的JS

防御措施

  • Content-Security-Policy 响应头 ,白名单限制可加载的域,指明允许的协议

  • 配置sandbox属性,限制iframe权限

    • 唯一来源
    • 阻止表单
    • 阻止脚本
    • 禁用API
    • 防止链接浏览其他上下文
    • 防止使用插件

SQL注入

sql是我们学习数据库的一种语言,而注入就代表是从前端对数据库下手,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗数据库服务器执行恶意的SQL命令,从而达到和服务器 进行直接的交互

  • 匹配和限制
  • 使用有防sql注入功能的后端组件和库