Web 安全知识扫盲

发布于 2023-10-30 00:55:52 字数 1842 浏览 34 评论 0

XSS

https://owasp.org/www-community/attacks/xss/

XSS (cross site scripting) 跨站脚本攻击,可以理解为网站会执行用户提交的内容。

类型:

  1. 反射型
    恶意输入包含到链接中,通过服务端生成包含恶意代码的 HTML, 用户访问链接后执行恶意代码
  2. 存储型
    用户输入存储到服务器中,其他用户可以看到这个输入。如果这个输入直接渲染,可能会执行恶意代码。
  3. DOM 型
    和反射性类似,一般是通过链接输入获取参数然后写入到页面中,区别是服务端返回 HTML 是正常的,客户端后续执行生成了恶意代码。例如 innerHTML , eval 等操作。

出现原因:未对用户输入进行转义,直接展示用户的输入,导致执行用户输入的代码。常见于评论区,个人信息,私信等功能。可能造成其他用户的用户信息泄漏,危害极大。

如何防御:

  1. 对用户输入进行转义,过滤
  2. 使用 CSP ,进行脚本执行限制
  3. cookie 设置 HttpOnly, 禁止 JS 获取
  4. 避免直接拼接 HTML 的操作,或者直接设置 innerHTML

XSS 攻击本质上可以说是 HTML 注入,执行用户输入的内容

CSRF

https://owasp.org/www-community/attacks/csrf

CSRF(cross site request forgery) 跨站请求伪造,这类攻击一般是利用用户登录的状态,欺骗用户执行攻击者想要执行的操作。例如一个网站的删除用户的操作是一个 get 请求,攻击者得知了请求的具体格式后,伪造成图片发送给管理员,管理员在登录状态看到该图片就会执行删除用户的操作。银行转账也是同理。

如何防御:

  1. 重要的操作,状态的更改不能使用 get 请求.[POST 请求只是相对安全]
  2. 对重要操作进行多重验证,验证码
  3. 验证请求的 referr
  4. 设置 cookie same-site
  5. 自定义 header, 利用 header 设置 token 信息
  6. 服务端生成页面时 生成 csrf token, 用户提交表单时传入该 token ,然后通过 session 进行验证 token 是否合法,这样可以保证是用户从合法路径发送了请求

CSRF 本质是伪造身份,常常结合 XSS 一起进行攻击

SQL 注入

SQL 注入 是指数据库查询时通过前端传入的条件直接拼接查询语句,造成执行隐患的缺陷。 一般发生在 php 网站,现在已经很少出现了。

影响: 数据库被清空,脱库

防御: 不能直接通过字符串进行凭借,使用对应的方法来执行语句

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

各自安好

暂无简介

0 文章
0 评论
516 人气
更多

推荐作者

ni139999

文章 0 评论 0

Smile

文章 0 评论 0

木子李

文章 0 评论 0

仅此而已

文章 0 评论 0

qq_2gSKZM

文章 0 评论 0

内心激荡

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文