正确采取Xss攻击防御措施

灵魂拷问:到底怎么做防XSS攻击才是最佳方案?网上那些拦截器方案靠谱吗?


Xss攻击说明:

1、攻击者准备 恶意html/javascript代码片段,该代码最终会被嵌入到被攻击服务器加载的页面上。

2、恶意html/js代码,在用户不知情的情况下被执行,以该登录用户的身份执行敏感操作或获取敏感数据后发送给攻击者。


举例如下:

    有个文章编辑页面,可以编写任意html/js代码。攻击者在里面嵌入了恶意js。

    文章被提交保存后,下次显示出来时,执行该恶意js,从而获取到敏感数据或执行恶意操作。


更加全面的例子和说明,参见:https://www.cnblogs.com/dadonggg/p/7797299.html


防范措施:

    恶意html/js代码片段,可以通过任何输入方式保存到服务器上,但这不是关键问题。

    关键问题是,恶意html/js需要有执行的载体,即要通过浏览器和服务器页面。


1、如果我有一个后台服务,但是不提供任何html页面访问,就不用担心xss攻击。(网上那些防范措施都是扯淡)

2、即便提供了html页面,但是页面任何html数据都是静态的,没有经过api加载数据,那也不用担心xss攻击

3、即便是有些页面需要从api加载数据并与html拼接(比如table列表),但是后台对api返回数据进行xss关键字过滤,也不用担心xss攻击


    堵住某些api返回恶意xss数据容易,还是堵住输入恶意xss数据容易?

    我认为,差别不大,从入口或者出口把控都可以,但是也只建议针对部分api处理,而不是把所有出口、入口都进行过滤,这样会严重降低请求处理效率


结论:

    最好的方案是 在前端提交或后端接收数据时,对关键字段进行防Xss字符校验;

    其次是在前端使用数据时进行xss过滤。

    在后端Controller API层,可以方便针对单个api级别进行配置,加一个注解即可过滤。不需要、不建议在通用拦截器层做处理!!


© 2009-2020 Zollty.com 版权所有。渝ICP备20008982号