我需要一个java regexp来检查文本字符串中的危险JavaScript,所以我不将它保存在我的数据库中。 我试图在互联网上找到一些信息,但找不到任何东西:( 有人可以帮我吗? 谢谢
答案 0 :(得分:0)
几年前我用过一个java类,它为我添加了一个像这样的正则表达式:
(.(?<!<|%3c|<))*
计算方式如下:
String[] EVIL_WORDS = { "<", "%3C", "<", "<", "PA==",
">", "%3E", ">", ">", "Pg==",
"&", "%26", "&", "&", "Jg==",
"\"", "%22", """, """, "Ig==",
"'", "%27", "'", "'", "Jw=="};
StringBuffer buffer = new StringBuffer();
buffer.append("(.")
if(EVIL_WORDS.length > 0) {
buffer.append("(?<!");
buffer.append(EVIL_WORDS[0]);
for (int i = 1; i < EVIL_WORDS.length; i++) {
buffer.append('|');
buffer.append(EVIL_WORDS[i]);
} //for
buffer.append(')');
}//if
buffer.append(')*');
图案不符合检测到的字符不正确。
该脚本产生了原始的veoery looong正则表达式,并检查了长度,sql注入和许多其他东西,但这些时间已经过去了。有了grails和XSS保护以及休眠sql注入保护,我不再使用它了。 但我很高兴能帮助你。