有的用户在文本框恶意输入<script></script>这样的代码然后提交到数据库肯定会实现js代码,能不能用过滤器来实现这样的预防,最好用过滤器来实现,其他的也行,围绕在java技术来实现。请大家指点迷津。感激不尽、
这个简单,你的思路也是,是一种好的解决方案。
写一类继承HttpServletRequestWrapper,重写方法,在里面将内容替换正则表达式,比如重写getParameter方法,代码类似,String html = html .replaceAll("))*+", "");
然后再写一个过滤器,过滤所有请求,将原来的ServletRequest替换为该类的对象。
输入框上加一个事件,让用户无法输入<>这样的符号
至于在哪里来过滤不重要,重要的是你过滤要使用的方法是什么?
建议,使用正则表达式验证,验证规定的特殊字符,前后台都验证。
再简单一点的,就是禁止输入像<、>、!、#、@、*、(等等之类的特殊符号
[quote]如果重写getAttribute这个方法可以吗?[/quote]
如果有必要当然可以!
采用过滤器,在过滤器里可以拿到requestc对象,然后对每个参数做循环处理替换所有带有js脚本的参数值即可。不需要重写getAttribute
<>用lgt;等替换。。