美文网首页
XSS、CSRF攻击与防范

XSS、CSRF攻击与防范

作者: LouisJ | 来源:发表于2018-08-05 22:50 被阅读0次

    什么是XSS攻击?

    XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

    举例说明

    假设在一个评论系统中,有以下情形:
    用户A发表了评论 [hello world] 提交到服务器,用户B看到这一条评论,一切正常

    恶意用户H发表了评论 [<script>console.log(document.cookie)</script>] ,当用户B访问这个评论界面的时候,这段代码就在用户B的页面中执行了,这样恶意代码甚至可以对B用户的cookie进行操纵,这样就构成了XSS攻击

    防范

    1. 不要使用 innerHTML,改成 innerText,script 就会被当成文本,不执行
    2. 如果你一样要用 innerHTML,字符过滤
    • 把 < 替换成 <
    • 把 > 替换成 >
    • 把 & 替换成 &
    • 把 ' 替换成 '
    • 把 ' 替换成 "
      代码 div.innerHTML = userComment.replace(/>/g, '<').replace...
    1. 使用 CSP Content Security Policy

    什么是CSRF攻击?

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

    举例说明
    1.用户在 qq.com 登录
    2.用户切换到 hacker.com(恶意网站)
    3.hacker.com 发送一个 qq.com/add_friend 请求,让当前用户添加 hacker 为好友。
    4.用户在不知不觉中添加 hacker 为好友。
    5.用户没有想发这个请求,但是 hacker 伪造了用户发请求的假象。

    防范
    1.尽量对要修改数据的请求使用post而不是get
    2.给每一次用户登陆分配一个临时token,用服务端的setCookie头将此token种入用户cookie中,每次请求比对用户方token与服务器端token是否吻合。
    3.服务器禁止跨域请求
    4.及时清除用户的无效cookie

    相关文章

      网友评论

          本文标题:XSS、CSRF攻击与防范

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