了解XSS和CSRF攻击


了解XSS和CSRF攻击

XSS 和 CSRF 介绍

在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式。那么本文就带你认识一下 XSS 和 CSRF 的攻防问题。

XSS

概念:

XSS , 全称:Cross Site Scripting ,译为跨域脚本攻击

原理:

不需要你做任何的登录验证,它会通过合法的操作 (比如在url中输入、在评论框中输入),向用户的页面注入脚本 (可能是 jshtml代码块等)。

防范:

1.编码:对于用户输入进行编码。

2.过滤:移除用户输入和事件相关的属性。(过滤 scriptstyleiframe等节点)

3.校正:使用DOM Parse转换,校正不配对的 DOM标签。

4.使用 HttpOnly

分类:

  • 反射性 (非持久):点击链接,执行脚本
  • 存储型 (持久):恶意输入保存数据库,其他用户访问,执行脚本
  • 基于 DOM:而已修改 DOM 结构,基于客户端

CSRF 攻击

概念:

CSRF , 全称:Cross-site request forgery ,译为跨站请求伪造

原理:

  1. 登录受信任的网站 A ,并在本地生成 Cookie。(如果用户没有登录网站 A,那么网站 B 在诱导的时候,请求网站 A 的 api 接口时,会提示你登录)。

  2. 在不登出 A 的情况下,访问危险网站 B (其实是利用了 网站 A 的漏洞)。

防范:

  1. token 验证;
  2. 隐藏令牌,把 token隐藏在 http 请求的 head 中。
  3. referer 验证,验证页面来源。

两者区别

  1. CSRF:需要用户先登录网站 A ,获取 cookie。XSS:不需要登录而是通过注入脚本等方式。
  2. CSRF:是利用网站 A 本身的漏洞,去请求网站 A 的 api。XSS:是向网站 A 注入 JS代码,然后执行 JS里的代码,篡改网站 A 的内容。

文章作者: feico
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 feico !
评论
  目录