前端攻击

 

XSS攻击(cross-site script)

   1. 定义:跨站脚本攻击(xss攻击)是Web应用程序中发现的计算机安全漏洞,XSS使攻击者能够将客户端脚本注入到其他用户查看的网页中。

   1)反射性xss:(非持久化的)出现在url中作为参数提交到服务器,服务器解析并响应,响应结果中包含xss代码,最后浏览器解析执行。  

http://test.com?name=<script>alert(document.cookie)</script> // 在url恶意弹框
<img src='' onerror=alert(document.cookie)> // 利用onerror属性恶意弹框

   2) 存储性xss:(持久化)攻击者输入恶意的脚本数据存入数据库,当其他用户读取时,用户浏览器将解析执行这段脚本。

// 利用留言板,提交以下代码,执行恶意代码
<script>alert(“1”)</script>

   3)DOM型:修改原始的客户端代码,受害者浏览器DOM环境法比安,导致有效载荷的执行。(页面本身没变化,但是DOM环境被恶意修改,有客户端代码包含进了页面,并且意外执行)

function test() {
  var str = document.getElementById('text').value
  document.getElementById('result').innerHTML = `<a href=${str}>link</a>`
}

 

  3. 攻击防御:

   1)前端可对用户输入信息进行过滤,如正则替换标签的方式进行转码节码,如<、>、空格等替换html编码

s = str.replace(/&/g,"&amp;");
s = s.replace(/</g,"&lt;");
s = s.replace(/>/g,"&gt;");
s = s.replace(/ /g,"&nbsp;");
s = s.replace(/\'/g,"&#39;");
s = s.replace(/\"/g,"&quot;");

    2)保护cookie,对于重要的cookie设置httpOnly,防止客户端痛殴document.cookie获取cookie.

    3)过滤敏感标签(script, iframe, form),以及敏感词(javascript:)和js事件(onclick, onerror, onfocus)

 

CSRF攻击(cross site request forgery)

 1. 定义:跨站请求伪造(CSRF攻击)是通过伪装成站点用户进行攻击。

 2. 形式:攻击者盗用用户的身份信息,并以用户的名义进行发送恶意的请求等,如发邮箱,盗用账号等非法手段

   如:登陆网站后,并在本地种下cookie,如果没退出网站且访问了恶意网站,携带cookie访问到的,你的信息将会被盗用。

 3. 攻击防御:

   1)验证HTTP Referer字段

   在HTTP头中Referer字段,记录该HTTP请求的来源地址,如果跳转的万盏与来源地址相符,那么就是合法的,否则可能是csrf攻击,拒绝该请求。

   2)在请求地址中添加token并验证

   请求的时候加个token值,token存入数据库后,后台返回给客户端,如果客户端再次登陆的时候,后台发现token没有或者在数据库中查询不会再呢过去,那么就拒绝请求。

   如果防止一个账号在多个机器上登录,我们可通过token来判断,如果A机器登录后,我们就将用户的token清楚,重新生成,那么另外一台B及其在操作的时候,token就失效了,只能重新登录,这样就防止两台机器同一账号。

    3)在HTTP头中自定义属性并验证

    如果每次请求都加token,那么各个接口都得加增加了不便。那么我们可通过http请求头来设置token,在ajax的headers中

 

网络劫持攻击

  1. 定义: 网络劫持攻击主要通过一些代理服务器,或者wifi等中间件的网络请求进行劫持。

  2. 攻击防御:采用https进行加密

 

 

 

 

posted on 2018-06-26 16:35  小兰子  阅读(150)  评论(0编辑  收藏  举报

导航