Я использую ESAPI, чтобы избежать XSS, поэтому мне нужно проверить все входы и закодировать все выходы.
Я использую ESAPI в Java, используя эту зависимость:
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.1.0.1</version>
</dependency>
И я использую следующий код для проверки и кодирования вывода:
1- Подтвердить ввод:
if(!ESAPI.validator().isValidInput("Form Data",input ,"SafeString", 300, true)) {
throw new ValidationException("this data has XSS code", "this data has XSS code");
}
, который отлично работает для обнаружения любого вредоносного кода, дайте мне знать, если есть что-то лучшее, чем это.
2- кодировать вывод:
ESAPI.encoder().encodeForHTMLAttribute("<script>التا");
Ожидаемый результат этой кодировки должен быть:
<script>التا
но на самом деле:
<script>التا
так как заставить ESAPI вернуть то, что я ожидаю?
Заранее спасибо за помощь :)