首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用esapi时出错

使用esapi时出错
EN

Stack Overflow用户
提问于 2012-06-27 14:47:18
回答 3查看 9.7K关注 0票数 0

我正在尝试在我的项目中使用OWASP ESAPI。但问题是owasp文档对我来说也太复杂了。我正在尝试使用来自esapi的验证,但即使没有错误,我也无法获得结果。

代码语言:javascript
复制
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次,结果如下:

代码语言:javascript
复制
    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

正如您所看到的,没有错误,属性被正确加载。我的问题是为什么它会止步于此。为什么没有打印'connect 2‘?为什么instance.isValidInput的结果没有打印出来呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-02 13:32:42

为了验证,我在需要验证用户输入的地方直接使用了这段代码。

代码语言:javascript
复制
String validatedAlertId = ESAPI.validator().getValidInput("alertId", alertId, "AlertIdRejex", 25, false);

你可能会有类似这样的东西。

代码语言:javascript
复制
    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
        }

//调用CLASS/OBJECT

AAAA.security这段代码已经为我工作过了。有关net beans及其属性文件的配置,请查看this url

票数 0
EN

Stack Overflow用户

发布于 2012-06-29 19:42:31

您没有在ESAPI配置中正确设置esapi资源路径。一旦你做到这一点,你就应该是金子。

请尝试此链接:

ESAPI Resource Directory setup

票数 0
EN

Stack Overflow用户

发布于 2012-06-29 20:10:17

很好,您正在使用ESAPI。首先,这个项目是maven、eclipse、ant还是其他的?对于要放置的两个属性文件,每种类型都有一个特定的位置,以便在第一次调用ESAPI时在运行时加载它们。请参阅google中提供的ESAPI安装指南。但从日志中可以清楚地看出,这两个文件都已成功加载。发布文件中可能包含的更多日志。问题可能是您正在使用getVAlidInput()方法验证并尝试获取电子邮件地址,并且使用了错误的正则表达式。从文件和控制台发布完整的正则表达式代码和异常日志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11220780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档