美文网首页
web安全之XSS与CSRF

web安全之XSS与CSRF

作者: hzl的学习小记 | 来源:发表于2019-07-19 09:52 被阅读0次
  1. XSS - Cross-site scripting
    xss其实就是html的注入问题,攻击者的输入没有经过严格的控制进入数据库,最终显示给来访的用户,导致可以在来访用户 的浏览器里以浏览器用户的身份执行html代码,数据的流程如下: 攻击者的html输入->web程序->进入数据库->web程序->用户浏览器。

比如我只想在页面上显示一个名字:

<span class="name">{{name}}</span>

但是,如果我的名字是长这样的:

XXX<script>alert('SB')</script>

这时候就好玩了:

<span class="name">XXX<script>alert('SB')</script></span>

攻击手段和目的

  1. 攻击者使被攻击者在浏览器中执行脚本后,如果需要手机来自被攻击者的数据(如cookie或其他敏感信息),可以自行架设一个网站,让被攻击攻击者通过javascript等方式把收集好的数据作为参数提交,随后以数据库等形式记录在攻击者自己的服务器上。

  2. 盗用cookie,获取敏感信息

  3. 利用 iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。

  4. 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动

  5. 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果

XSS 怎么防御

一个经典的防御方法就是对内容进行转义和过滤,比如

var escapeHtml = function(str) {
    if(!str) return '';
    str = str.replace(/&/g, '&amp;');
    str = str.replace(/</g, '&lt;');
    str = str.replace(/>/g, '&gt;');
    str = str.replace(/"/g, '&quto;');
    str = str.replace(/'/g, '&#39;');
    // str = str.replace(/ /g, '&#32;');
    return str;
};

var name = escapeHtml(`<script>alert('SB')</script>`);

此时 name 会变成

<script>;alert(&#39;SB&#39;)&lt;/script&gt;

CSRF

CSRF是跨站伪造(Cross-site request forgery)的英文缩写。CSRF 顾名思义,是伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 Session ID 也是大多保存在 cookie 里面的),再予以授权的。所以要伪造用户的正常操作,最好的方法是通过 XSS 或链接欺骗等途径,让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求。
要完成一次CSRF攻击,受害者必须依次完成两个步骤。
1.登录受新人的网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。

一个CSRF攻击是如何工作的?

在他们的钓鱼站点,攻击者可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求:

<form action="https://my.site.com/me/something-destructive" method="POST">
  <button type="submit">Click here for free money!</button>
</form>

如何减轻CSRF攻击

  1. 只使用JSON api
    使用JavaScript发起AJAX请求是限制跨域的。
    不能通过一个简单的<form>来发送JSON,
    所以,通过只接收JSON,你可以降低发生上面那种情况的可能性。

  2. CSRF Tokens
    最终的解决办法是使用CSRF tokens。
    CSRF tokens是如何工作的呢?

服务器发送给客户端一个token。
客户端提交的表单中带着这个token。
如果这个token不合法,那么服务器拒绝这个请求。

参考:

https://www.jianshu.com/p/64f60ce328b9

相关文章

  • web安全之XSS与CSRF

    XSS - Cross-site scriptingxss其实就是html的注入问题,攻击者的输入没有经过严格的控...

  • 浅说 XSS 和 CSRF

    在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式。本文将会简单介绍 XSS 和 CSRF 的攻防问...

  • web安全之XSS,CSRF

    XSS - Cross-site scripting xss其实就是html的注入问题,攻击者的输入没有经过严格的...

  • DDOS、CC、sql注入,跨站攻击防御方法

    web安全常见攻击解读--DDos、cc、sql注入、xss、CSRF 一,DDos https://www.cn...

  • 《大型网站技术架构》笔记:架构之安全

    网站应用的攻击和防御 Web应用主要面对XSS攻击、SQL注入、CSRF和Session劫持等安全问题。 XSS攻...

  • Web安全之CSRF和XSS

    Web安全问题中,CRSF和XSS是最常见的攻击方式,本文将从概念、原理、举例、预防方式和两种方式对比总结这两种安...

  • 安全包开发整体架构

    SSRF防御 SSRF安全漏洞以及防御实现 XSS防御 xss漏洞以及防御实现 CSRF防御 CSRF安全漏洞以及...

  • XSS如何防范

    XSS如何防范 题意分析在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式。下面我们首先简单了解一下...

  • Web 开发常见安全问题

    前端安全XSS 漏洞CSRF 漏洞 后端安全SQL 注入漏洞权限控制漏洞SESSION 与 COOKIEIP 地址...

  • Web 安全总结

    了解更多,添加308139472 本文介绍以下几种常见的 web 安全问题及解决方法: 同源策略 XSS CSRF...

网友评论

      本文标题:web安全之XSS与CSRF

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