2010-12-08 2 views
0

Мне нужно регулярное выражение java для проверки опасного JavaScript в текстовой строке, поэтому я не сохраняю его в своей базе данных. Я пытаюсь найти какую-то информацию по интернету, но ничего не могу найти :( Может кто-нибудь помочь мне с этим? СпасибоRegExp для проверки на JavaScript

+0

Не могли бы вы уточнить, какой текст вы хотите сопоставить? – Ruel 2010-12-08 13:35:42

ответ

0

Я несколько лет назад класс Java, который добавляется для меня регулярное выражение, как это :

(.(?<!<|%3c|&#x3c))* 

было вычислено, что путь:

String[] EVIL_WORDS = { "<", "%3C", "&#x3C;", "&#60", "PA==", 
          ">", "%3E", "&#x3E;", "&#62", "Pg==", 
          "&", "%26", "&#x26;", "&#38", "Jg==", 
          "\"", "%22", "&#x22;", "&#34", "Ig==", 
          "'", "%27", "&#x27;", "&#39", "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(')*'); 

Это картина не соответствует там был плохой характер обнаружен

0.

Сценарий создавал оригинальное регулярное выражение vooery looong и делал проверки длины, sql-инъекции и множества других вещей, но эти времена ушли. С grails и XSS-защитой и спящими системами защиты от вторжения sql я больше не использую его. Но я рад, что смогу вам помочь.

Смежные вопросы