CSRF和XSS

1、CSRF

基本概念和缩写:
CSRF,通常称为跨站请求伪造,英文名Cross-site request forgery 缩写CSRF

攻击原理
CSRF和XSS_第1张图片
攻击前提条件:

  • 在注册网站登录过
  • 网站某个接口有漏洞

防御措施

  • Token验证(访问接口时带上token)
  • Referer验证(服务器判断页面来源是否是该网站下的)
  • 隐藏令牌

2、XSS

基本概念和缩写:
XSS(cross-site scripting 跨域脚本攻击)

攻击原理
向页面注入脚本并运行

攻击方式:

  • 反射型
  • 存储型

反射型
两点条件:
发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回浏览器,最后浏览器解析执行XSS代码。

触发方式
自动触发:通过img标签如: http://localhost:3000/?xss=
引诱触发:http://localhost:3000/?xss=

点我啊


iframe方式:http://localhost:3000/?xss=常用来插入广告之类的。

存储型
和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统),下次请求目标页时不用再提交XSS代码。

防御措施:

  • 第一步:编码
    对用户输入的数据进行HTML Entity编码
  • 第二步:过滤
    移除用户上传的DOM属性,如onerrror等
    移除style节点、script节点、iframe节点等
  • 第三步:校正
    避免直接对HTML Entity解码 使用DOM
    Parse转化,校对不配对的DOM标签

3、区别:

CSRF是依赖于登录该网站并且利用该网站接口的漏洞去执行接口,XSS是通过注入脚本的方式去执行相应的js操作。

你可能感兴趣的:(JS,安全)