是否有人可以考虑在无网络环境中开始使用ESAPI? 我参加了这个用DefaultValidator.isValidCreditCard验证字符串的小测试,但是我遇到了一些web容器依赖错误。
Junit测试使用以下方法:
@Override
public ValidationErrorList creditCard(String value) {
this.value = value;
ValidationErrorList errorList = new ValidationErrorList();
try {
isValid = validator.isValidCreditCard(null, value, false, errorList);
}catch(Exception ie){
System.out.println(">>> CCValidator: [ " + value + "] " + ie.getMessage());
messages = (ArrayList) errorList.errors();
}
return messages;
}
这是我得到的错误(相关部分)当然我没有在容器中运行:
Attempting to load ESAPI.properties via file I/O.
Attempting to load ESAPI.properties as resource file via file I/O.
Found in 'org.owasp.esapi.resources' directory: C:\foundation\validation\providers\esapi\ESAPI.properties
Loaded 'ESAPI.properties' properties file
Attempting to load validation.properties via file I/O.
Attempting to load validation.properties as resource file via file I/O.
Found in 'org.owasp.esapi.resources' directory: C:\foundation\validation\providers\esapi\validation.properties
Loaded 'validation.properties' properties file
SecurityConfiguration for Encoder.AllowMixedEncoding not found in ESAPI.properties. Using default: false
SecurityConfiguration for Encoder.AllowMixedEncoding not found in ESAPI.properties. Using default: false
javax/servlet/ServletRequest
java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74)
at org.owasp.esapi.ESAPI.httpUtilities(ESAPI.java:121)
at org.owasp.esapi.ESAPI.currentRequest(ESAPI.java:70)
at org.owasp.esapi.reference.Log4JLogger.log(Log4JLogger.java:434)
...
调用ESAPI..xxxMethods()也会引发依赖性错误。
任何有关入门的建议都将受到赞赏。
最好,
何
答案 0 :(得分:1)
ESAPI有一个servlet过滤器API,需要javax.servlet.ServletRequest
在类路径上。 ESAPI归OWASP所有 - > "打开Web应用程序安全项目。"因此,ESAPI在设计时考虑了Web应用程序。
如果您没有编写Web应用程序,那么它可以是控制台应用程序,也可以是富客户端应用程序。如果您不希望使用它来连接到外部世界,那么您真正需要担心的主要安全实践是ensuring that you always use safely parameterized queries,并且从连接的源传递到您的应用程序的任何数据对外界的妥善逃脱。为此,您唯一需要的是OWASP's encoder project.