美文网首页
xss攻击和csrf/xsrf攻击

xss攻击和csrf/xsrf攻击

作者: 广告位招租 | 来源:发表于2019-03-12 17:11 被阅读0次

xss攻击

XSS(Cross Site Scripting), 跨站脚本攻击,是发生在目标用户的浏览器层面上,当渲染DOM树时发生了不在预期范围内的js代码执行时,可以被判定为发生了xss攻击

xss攻击的类别

  1. 反射型xss

非持久型XSS,是指发生请求时,XSS代码出现在请求URL中,作为参数提交到服务器,服务器解析并响应。响应结果中包含XSS代码,最后浏览器解析并执行。
简单的案例是,某网站有一个input框,输入内容后,将会在内面上呈现输入的内容,如果这里不对返回的数据进行解码和过滤等操作的话,如果我们在input中输入一段具有攻击性的代码片段

<img src="null" onerror='alert(document.cookie)' />

页面将会弹出当前本地部分的cookie信息

类似案例这样的,被称作反射型xss攻击

  1. 存储型 XSS

存储型XSS,也叫持久型XSS,主要是将XSS代码发送到服务器(不管是数据库、内存还是文件系统等。),然后在下次请求页面的时候就不用带上XSS代码了。
这里典型的案例就是留言板,用户提交了一条包含xss代码的留言到数据库,当目标用户查询留言时,留言的内容就会从服务器解析之后加载,浏览器将xss代码做html和js进行解析,发生了xss攻击

  1. DOM XSS

DOM XSS攻击不同于反射型XSS和存储型XSS,DOM XSS代码不需要服务器端的解析响应的直接参与,而是通过浏览器端的DOM解析。这完全是客户端的事情。
DOM XSS代码的攻击发生的可能在于我们编写JS代码造成的。我们知道eval语句有一个作用是将一段字符串转换为真正的JS语句,因此在JS中使用eval是很危险的事情,容易造成XSS攻击。避免使用eval语句。

test.addEventListener('click', function () {
  var node = window.eval(txt.value)
  window.alert(node)
}, false)

// txt中的代码如下
<img src='null' onerror='alert(123)' />

xss的防御

  1. 对用户输入的内容进行解析和过滤或编码

过滤有危险DOM节点,如script,img, link, style, iframe等等

  1. 对cookie做保护,设置httpOnly,防止客户端通过document.cookie读取cookie

csrf/xsrf攻击

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。攻击者将会盗用你的身份,以你的名义发送恶意请求

产生csrf攻击需要有两个步骤

  1. 登陆受信网站A,并且在本地生产对应的cookie
  2. 在不登出A的情况下,访问危险网站B

csrf攻击是源于web的隐式身份验证机制,web的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的

csrf攻击的防御

  1. 尽量少使用get请求
  2. 使用验证码
  3. Referer Check
  4. 使用token

相关文章

  • xss攻击和csrf/xsrf攻击

    xss攻击 XSS(Cross Site Scripting), 跨站脚本攻击,是发生在目标用户的浏览器层面上,当...

  • CSRF攻击

    CSRF叫做跨站请求伪造攻击,也有叫XSRF的,其实都差不多,你也可以认为是XSS和CSRF的结合。对于这个攻击原...

  • laravel的CSRF防护机制和延伸

    在说laravel框架里对CSRF的攻击防护之前先对XSS和CSRF攻击做一下简单的介绍。 XSS和CSRF攻击 ...

  • 常见的WEB攻击

    XSS攻击,CSRF攻击,SQL注入攻击,文件上传漏洞,DDoS攻击,其他攻击手段 1.XSS攻击 XSS(Cro...

  • CSRF| XSRF、JSON劫持攻击和XSS

    一、CSRF| XSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 o...

  • CSRF攻击

    除了XSS攻击外,还有一种叫CSRF的攻击不容小视。 什么是CSRF攻击呢? CSRF攻击又称跨站请求伪造,攻击者...

  • 贰--某服

    1.xss和csrf的本质区别 xss和csrf是两种不同维度的攻击形式。xss跨站脚本,主要是一种攻击手段,恶意...

  • JAVA框架面试题整理之—第四篇

    168、什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击? 答: - XSS(Cross Site Sc...

  • CSRF攻击和XSS攻击

    CSRF CSRF,全称Cross-site request forgery(跨站请求伪造),其原理是利用用户的身...

  • XSS攻击和CSRF攻击

    一、XSS攻击1、什么是XSS?XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户...

网友评论

      本文标题:xss攻击和csrf/xsrf攻击

      本文链接:https://www.haomeiwen.com/subject/cnqnpqtx.html