一、xss注入测试(跨站脚本攻击)

概念:攻击者利用网站漏洞把恶意的脚本代码注入到网页中,当其他用户浏览这些网页时,浏览就会执行其中的恶意代码

JavaScript的作用:

<script>alert("hello");</script>

<img src=x onerror=alert('11')>

a.js能够在浏览器中执行

b.弹出对话框

c.可以控制浏览器跳转网页

1.反射型xss注入

前提:URL传递参数,展示在页面

get、post方法都会有这个问题

场景:如果系统功能是将用户提交的数据直接展示在我们的页面,就有可能出现反射型xss注入的漏洞

2.存储型xss注入

场景:用户提交表单,用户留言,评论等功能,只要有用户提交数据展示在页面的系统都会存在xss注入风险

数据持久的保存在系统中

3.DOM型xss注入

场景:通过浏览器工具修改源代码

特点:攻击难度很高,防御难度很高

4.防御建议

a.后端对输入内容的特定字符进行编码,例如表示html标记的<>等符号,例如服务器将,<>转码成&lt这样处理,返回给客户端在展示为<>

b.对重要的cookie设置httpOnly,防止客户端通过document.cookie读取cookie,此HTTP头由服务的设置

c.将不可信的值输出到URL之前,进行URLEncode操作


二、CSRF漏洞(跨站请求伪造)

概念:已登录正常网站A ,访问危险网站B ,B网站借助用户在A网站的登录状态,隐式的向A网站提交数据

1.攻击手法

表单提交

2.原理分析

session机制、cookie机制 浏览器中是共享的 ,黑客可以伪造表单提交

3.防御建议

表单添加csrf-token ,黑客无法获知csrf-token