我正在使用ESAPI来避免XSS,因此我需要验证所有输入并对所有输出进行编码。
我通过这种依赖关系在Java中使用ESAPI:
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.1.0.1</version>
</dependency>
Im使用以下代码来验证和编码输出:
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返回我所期望的?
提前感谢您的帮助:)