一、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标记的<>等符号,例如服务器将,<>转码成<这样处理,返回给客户端在展示为<>
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