RegExp для проверки на JavaScript - PullRequest
0 голосов
/ 08 декабря 2010

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

1 Ответ

0 голосов
/ 08 декабря 2010

Несколько лет назад я использовал 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(')*');

Если шаблон не соответствует, обнаружен плохой символ.

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

...