1.什么是 XSS 攻击XSS 其实就是使用 javascript 脚本语言攻击。
XSS攻击应用场景
具体例子
-
请求提交表单信息,表单信息转发到另一个页面进行展示。
比如在评论区中,如果没有做XSS防御处理,那么有人评论了一个带有javascript
脚本的评论,那么这个脚本会被浏览器解析执行。 -
有一些钓鱼网站,在提交参数的时候后面带上 XSS 脚本攻击。
举例子有这样一个链接:
http://pay.itmayiedu.com/pay?userId=108money=500&userName=<script.> window . location . href =' http :/// www . itmayiedu . com ';</ script >。
userName参数后面带了一个脚本参数,它打开了另一个页面,这个页面是一个高仿页面,那么就可能盗取信息。
2. XSS 攻击原理:使用 Js 脚本语言,因为浏覧器默认支持脚本语言执行,如果在表单提交的时候,提交一些脚本参数,可能浏览直接进行执行。
3. XSS 攻击最大漏洞常见
论坛、评论 XSS
4. XSS 攻击攻击防御手段
像一些特殊字符,比如<、>如果不进行特殊字符处理的话,很就可能受到 XSS 攻击。
用户如果提交<转换成&lt ; script > 。
程序中如何实现,写一个过滤器,拦截所有获取的参数,将特殊字符转换一下。比如>转换成& gt 进行展示,防止 XSS 攻击。
在maven项目中导入如下坐标:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
使用如下方法将参数中的特殊符号转成html可替代的标记StringEscapeUtils.escapeHtml3();
@Test
public void testXss(){
String parameter = "<script></script>";//模拟获取到的表单参数
String s = StringEscapeUtils.escapeHtml3(parameter);//将参数转成这样表达:<script></script>
}