我正在编写一个 java 类,该类将由 servlet 过滤器调用,并检查基于 Struts 的 java web 应用程序的注入攻击尝试和 XSS。InjectionAttackChecker 类使用 regex 和 java.util.regex.Pattern 类根据 regex 中指定的模式验证输入。
话虽如此,我有以下问题:
- 应该阻止所有特殊字符和字符模式(例如 <>、.、--、<=、==、>=)以防止注入攻击。
- 是否有任何现有的正则表达式模式可以按原样使用?
- 在某些特定情况下,我必须允许一些特殊字符模式,一些示例值(被允许)是(使用 'pipe' | 字符作为不同值的分隔符)*Atlanta | #654,大厦 8 #501 | 单纯疱疹:慢性溃疡(持续时间>1 个月)或支气管炎、肺炎或食管炎 | FUNC & COMP(date_cmp), "NDI & MALKP & HARS_IN(icd10, yes)"。我应该采用什么策略才能防止注入攻击和 XSS,但仍然允许这些字符模式。
我希望我已经清楚地提到了这个问题。但如果我没有,我会道歉,因为这只是我的第二个问题。如果需要任何澄清,请告诉我。