跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
非持久型XSS攻击:转瞬即逝,脚本获取cookie值
持久型XSS攻击: 脚本植入到服务器中,攻击行为伴随攻击数据一致存在
反射型xss : 非持久型 危险度低
存储型xss : 危险度高
dom型xss : 危险度高
常见的脚本攻击标签:
<script>alert(1)</script>
<img src=x onerror="alert(01)/>
等等...
通过植入脚本,造成网站对部分数据的展示以及cookie等用户私有数据泄露等危害。
防御原理
1.过滤用户输入的字符
2.设置黑白名单,对用户输入的代码过滤
3.过滤js代码和危险标签
java防御xss攻击:
- 自己写 filter 拦截来实现,但要注意的时,在WEB.XM 中配置 filter的时候,请将这个 filter 放在第一位.
- 采用开源的实现 ESAPI library ,参考网址:
1.https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API
2.https://blog.csdn.net/shuaicihai/article/details/76099805 - 可以采用spring 里面提供的工具类来实现.