当前位置:  开发笔记 > 编程语言 > 正文

在Java Web应用程序中防止SQL注入攻击和XSS的方法

如何解决《在JavaWeb应用程序中防止SQL注入攻击和XSS的方法》经验,为你挑选了1个好方法。

我正在编写一个java类,它将由servlet过滤器调用,并检查基于Struts的java Web应用程序的注入攻击尝试和XSS.InjectionAttackChecker类使用regex和java.util.regex.Pattern类来根据regex中指定的模式验证输入.

话虽如此,我有以下问题:

    应该阻止所有特殊字符和字符模式(例如<>,., - ,<=,==,> =)以防止注入攻击.

    是否存在我可以使用的现有正则表达式模式?

    我必须在某些特定情况下允许一些特殊字符模式,一些示例值(允许)是(使用'pipe'|字符作为不同值的分隔符)*Atlanta | #654,BLDG 8#501 | 单纯疱疹:慢性溃疡(> 1个月的持续时间)或支气管炎,肺炎或食道炎 FUNC&COMP(date_cmp),"NDI&MALKP&HARS_IN(icd10,yes)".我应该采取什么策略,以便可以防止注入攻击和XSS,但仍然允许这些字符模式.

我希望我已经清楚地提到了这个问题.但如果我没有,我道歉只是我的第二个问题.如果需要澄清,请告诉我.



1> James McMaho..:

基于您的问题,我假设您正在尝试过滤不良值.我个人认为这种方法可以非常快速地变得非常复杂,并建议将编码值作为替代方法.以下是关于该主题的IBM文章,其中列出了两种方法的优缺点,http://www.ibm.com/developerworks/tivoli/library/s-csscript/.

要避免SQL注入攻击,只需使用预准备语句而不是创建SQL字符串.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有