美文网首页
XSS and CSRF

XSS and CSRF

作者: 采姑娘的小智障 | 来源:发表于2020-01-06 20:04 被阅读0次

    XSS(Cross Site Script)跨站脚本攻击

    XSS 攻击指的是攻击者在网站上注入恶意客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一种攻击方式

    攻击者对客户端网页注入的恶意脚本一般包括JavaScript,又是也会包含HTML 和 Flash.

    XSS 攻击的共同点:将一些隐私数据比如cookie,session 发送给攻击者,将受害者重定向到一个由攻击者控制的网址,在受害者机器上进行一些恶意操作。

    XSS攻击分3类

    1. 反射型

    简单地把用户输入的数据“反射”给浏览器,这种攻击方式往往需要攻击者诱导用户点击一个恶意链接,或者提交一个表单,或者进入一个恶意网站时,注入脚本进入被攻击者的网站。注入脚本可能是恶作剧脚本或者是注入能获取隐私数据的脚本

    2.存储型
    会把用户输入的数据提交“存储”在服务器端,当浏览器请求数据时,脚本从服务器上返回到浏览器器页面并执行。
    常见场景:论坛中写下一篇包含恶意JavaScript代码的文章或评论发表后,所有访问改文章或评论的用户,都会在他们的浏览器中执行这段恶意js代码。

    3. 基于DOM
    通过恶意脚本修改页面DOM结构,纯粹发生在客户端的攻击。
    场景:用户页面操作后,在当前页出现一个链接,其地址为用户输入的内容,当用户点击链接,就会执行相应的脚本

    防范XSS攻击

    1. HttpOnly 防止劫取Cookie
    实质是阻止XSS攻击后的cookie劫持攻击

    2. 客户端输入检查
    不要相信用户的任何输入:对用户的任何输入都要检查、过滤或转义,建立可信赖的HTML标签白名称,对不在白名单之列的字符或者标签进行过滤或者编码。

    3. 服务器端输出检查

    CSRF(Cross Site Request Forgery) 跨站请求伪造

    劫持受信任用户向服务器发送非预期请求的攻击方式

    通常情况下,CSRF攻击是攻击者借助受害者的cookie骗去服务器的信任,在受害者毫不知情的情况下,已受害者名义伪造请求发送给受攻击服务器,从而在未授权的情况下执行在权限保护之内的操作

    CSRF攻击方式

    1. 通过Cookie进行CSRF攻击
    由于cookie中包含了用户的认证信息,当用户访问攻击者准备的攻击环境时,攻击者就可以对服务器发起CSRF攻击。在攻击过程中,攻击者借助受害者的cookie骗去服务器信任,当并不能拿到cookie也看不到cookie内容,而对于服务器返回的结果,由于浏览器同源策略的限制,攻击者也无法进行解析。因此。攻击者无法从返回结果中得到任何东西,他所能做的就是给服务器发送请求,以执行请求中所描述的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。

    但是,如果CSRF攻击的目标并不需要cookie,也不必考虑浏览器的cookie策略

    CSRF攻击的防范

    1. 验证码
    验证码强制用户必须与应用进行交互,才能完成请求。避免用户在不知情的情况下构造了网络请求

    2.Referer Check
    根据HTTP协议,在HTTP头中有个Referer字段,记录了该HTTP请求的来源地址。通过Referer Check,可以检查请求是否来气合法的“源”

    3.添加token验证
    CSRF攻击之所以能成功,是因为攻击者可以完全伪造用户的请求,改请求中所有用户验证信息都存在cookie中,因此攻击者可在不知道这些验证信息的情况下直接利用用户自己的cookie来通过安全验证。所以关键在于在请求中放入攻击者所不能伪造的信息,并且该信息不存在在cookie中。

    可以在请求中已参数的情诗加入一个随机产生的token,并在服务器建立一个拦截器验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击额拒绝请求

    相关文章

      网友评论

          本文标题:XSS and CSRF

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