spring mvc 使用esapi包防止xss

关于esapi包的学习,用于提升spring mvc的安全性

 

之前我尝试写了过滤xss的代码,一句话,写得我很难受。大概是这样实现的:提取字符串并且进行转义,并且用spring引入关键词配置文件来配置过滤的一系列正则。写了一大堆,还是感觉写得不怎么样。之后我去看了专业的xss代码,感觉我的解决方案一下子就会被绕过…很多细节的地方我忽略掉了。

于是我尝试了解下有没有组件可以系统性地预防xss,于是发现了esapi这个包。使用了之后发现还是比较易于使用的,而且确实可以预防xss。至于效果,因为我水平有限,所以不敢保证…

那么接下来介绍使用方法。

1.获取esapi的包和log4j的包

以下是我引入的包

因为esapi需要log4j作为日志输出,所以需要引入log4j的包。因为slf4j中已经包含log4j的依赖,所以我这里是可以执行的。但是具体环境需要具体分析。

2.引入配置文件

首先这个配置文件的路径是定死的

我的位于C:\Users\Administrator.USER-20150703ZH\esapi下

所以可以推断,一定要在C盘的个人用户文件夹下建立一个esapi的文件夹,之后在其中放入两个esapi的配置文件

这里会有个最坑的地方,就是maven仓库下载的esapi包中根本不会带有这两个必要的配置文件,需要在网上找。两个配置文件就是我从网上找的,确实可以使用。

下载地址:http://pan.baidu.com/s/1qYVjrZ2 提取码:nxcd

如果不引入这两个配置文件,调用esapi的方法时就会报错,并且无法使用。

3.使用方法

输入xss语句<script>alert(‘xie4ever’)<script>

输出结果为&lt;script&gt;alert&#x28;&#x27;xie4ever&#x27;&#x29;&lt;script&gt;

可以看见进行了完全的转义。

还有其他的预防xss的语句,不一一列举了。

4.总结

esapi的组件除了配置的时候比较坑,还是能起到不错的安全作用,至少比我手写的效果要好得多(泪)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注