我正在尝试在我的项目中使用OWASP ESAPI。但问题是owasp文档太复杂了我。我正在尝试使用esapi的验证,但即使没有错误也无法得到结果。
import org.owasp.esapi.ESAPI;
import org.owasp.esapi.Validator;
public void security(String s) {
System.out.println("connect 1");
Validator instance = ESAPI.validator();
System.out.println("connect 2");
System.out.println(instance.isValidInput("test", "xxxxx@gmail.com", "Email", 100, false));
}
如果我尝试运行3次,结果如下:
connect 1
Attempting to load ESAPI.properties via file I/O.
Attempting to load ESAPI.properties as resource file via file I/O.
Not found in 'org.owasp.esapi.resources' directory or file not readable: C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\bin\ESAPI.properties
Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties
Found in 'user.home' directory: C:\Users\xxxx\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.
Not found in 'org.owasp.esapi.resources' directory or file not readable: C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\bin\validation.properties
Not found in SystemResource Directory/resourceDirectory: .esapi\validation.properties
Found in 'user.home' directory: C:\Users\xxxx\esapi\validation.properties
Loaded 'validation.properties' properties file
connect 1
connect 1
正如您所看到的那样,没有错误并且属性已正确加载。我的问题是它停在那里的原因。为什么'连接2'没有打印?为什么instance.isValidInput的结果也不打印?
答案 0 :(得分:0)
答案 1 :(得分:0)
您使用的是ESAPI。首先,该项目是maven或eclipse还是ant或其他?每个类型都有一个特定的位置,可以放置属性文件,以便在第一次调用ESAPI时在运行时加载它们。浏览谷歌中提供的ESAPI安装指南。但是从日志中可以清楚地看到两个文件都已成功加载。发布您在文件中可能包含的其他日志。问题可能是您正在验证并尝试使用getVAlidInput()方法获取电子邮件地址并使用错误的正则表达式。从文件和控制台发布完整的正则表达式代码和异常日志。
答案 2 :(得分:0)
对于验证我直接使用了此代码,因此我需要验证用户输入。
String validatedAlertId = ESAPI.validator().getValidInput("alertId", alertId, "AlertIdRejex", 25, false);
你可能有这样的事情。
public String security(String s) {
System.out.println("connect 1");
valiDatedString = ESAPI.validator().getValidInput("test", "xxxxx@gmail.com", "Email", 100, false);
System.out.println("connect 2"+valiDatedString);
return valiDatedString
}
// CALLING CLASS / OBJECT
AAAA.security 这段代码对我有用。对于net beans及其属性文件的配置,请查看this url。