你好世界
  • 入门
  • 框架
  • Webpack
  • 模式
  • 知识点
  • 面试题
  • Koa
  • Java
  • Python
  • MongoDB
  • Redis
  • Algorithm
  • AI 概述
  • 机器学习
  • 深度学习
  • 自然语言处理
  • 关键词说明
  • 使用技巧
  • 本地模型安装及下载
  • 调试
  • 测试
  • GIT
  • Network
  • Linux
  • VSCode
  • GitHub
  • Mock
  • 入门
  • 框架
  • Webpack
  • 模式
  • 知识点
  • 面试题
  • Koa
  • Java
  • Python
  • MongoDB
  • Redis
  • Algorithm
  • AI 概述
  • 机器学习
  • 深度学习
  • 自然语言处理
  • 关键词说明
  • 使用技巧
  • 本地模型安装及下载
  • 调试
  • 测试
  • GIT
  • Network
  • Linux
  • VSCode
  • GitHub
  • Mock
  • Knowledge

    • 知识点
    • OAuth授权
    • 安全
    • 常用手写代码
    • 常用工具函数
    • 性能优化
    • 运行环境
    • 模块加载

安全

常见的 web 前端攻击方式有哪些?

XSS 跨站请求攻击

——个博客网站,我发表一篇博客,其中嵌入<script>
脚本内容:获取cookie,发送到我的服务器(服务器配合跨域)
发布这篇博客,有人查看它,我轻松收割访问者的cookie

示例

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>XSS演示</title>
  </head>
  <body>
    <p>一段文字1</p>
    <p>一段文字2</p>
    <p>一段文字3</p>
    <!-- <script>alert(document.cookie);</script> -->
    &lt;script&gt;alert(document.cookie);&lt;/scriptt&gt;
  </body>
</html>

预防

替换特殊字符,如<变为&lt;>变为&gt;
<script>变为&lt;script&gt;,直接显示,而不会作为脚本执行
前端要替换,后端也要替换,都做总不会有错

XSRF 跨站请求伪造

你正在购物,看中了某个商品,商品id是100
付费接口是xxx.com/pay?id=100,但没有任何验证
我是攻击者,我看中了一个商品,id是200

我向你发送一封电子邮件,邮件标题很吸引人
但邮件正文隐藏着<img srC=xXx.com/pay?id=200 />
你一查看邮件,就帮我购买了id是200的商品

预防

使用post 接口
增加验证,例如密码、短信验证码、指纹等
最后更新时间: 7/19/21, 6:35 PM
贡献者: LAPTOP-CRCIOU48\hjl, DESKTOP-ER5718D\zt
Prev
OAuth授权
Next
常用手写代码