Я пишу класс java, который будет вызван фильтром сервлета, и который проверяет попытки инъекционной атаки и XSS для веб-приложения java на основе Struts. Класс 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, но все же разрешить эти шаблоны символов.
Надеюсь, я четко сказал этот вопрос. Но если бы я этого не сделал, я извиняюсь за свой второй вопрос. Пожалуйста, дайте мне знать, если требуется какое-либо разъяснение.