第176题 常见的web前端攻击方式有哪些

  • XSS跨站请求攻击
    • 例子
      • 一个博客网站,我发表了一篇博客,其中嵌入<script>脚本
      • 脚本内容:获取cookie,发送到我的服务器(服务器配合跨域)
      • 发表这篇博客,有人查看它,我轻松拿到访问者的cookie
                <p>一段文字1</p>
        <p>一段文字2</p>
        <p>一段文字3</p>
        <!-- 获取cookie -->
        <script>alert(document.cookie)</script>
        <!-- 转义HTML -->
        &lt;script&gt;alert(document.cookie);&lt;/script&gt;
* **预防**
  * 替换特殊字符,如`<`变为`&lt;`,`>`变为`t&gt;`
  * `script`变为`&lt;script&gt;`,直接显示,而不会作为脚本执行
  * 前端要替换字符,后端也要替换字符,使用[xxs (opens new window)](https://npmjs.com/packages/xss)库处理即可
  • CSRF跨站请求伪造
    • 例子
      • 你正在购物,看中了某个商品,商品id100(此时我已经登录了网站cookie记录在本地)
      • 付费接口是xx.com/pay?id=100,但没有任何验证
      • 我是攻击者,我看中的商品id=200
      • 我向你发送一封电子邮件,标题很吸引人
      • 但邮件正文隐藏着<img src="xx.com/pay?id=200" />
      • 你一查看邮件,就帮我买了id=200的商品
      • 什么会这样?
        • 我登录了网站,记录用户信息cookie在本地
        • img标签支持跨域向xx.com/pay?id=200发送请求,会携带本地的cookie
        • 注意CSRF拿不到用户的cookie,只是借用了cookie
    • 预防
      • 使用POST接口
      • 增加验证,如支付密码、短信验证码、指纹等
Last Updated:
Contributors: leeguooooo