0

プロジェクトで 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

ご覧のとおり、エラーはなく、プロパティは適切にロードされています。私の問題は、なぜそこで止まったのかです。「connect 2」が印刷されないのはなぜですか? また、instance.isValidInput の結果も出力されないのはなぜですか?

4

3 に答える 3

0

esapi構成でESAPIリソースパスを正しく設定していません。あなたがそれをしたら、あなたは金色になるはずです。

このリンクを試してください:

ESAPIリソースディレクトリの設定

于 2012-06-29T11:42:30.523 に答える
0

ESAPIを使用しています。まず、プロジェクトはmavenですか、Eclipseですか、それともantですか? すべてのタイプには、ESAPI が初めて呼び出されるたびに実行時に読み込まれるように、両方のプロパティ ファイルを配置する特定の場所があります。Google で入手できる ESAPI インストール ガイドを参照してください。しかし、ログから、両方のファイルが正常にロードされたことは明らかです。ファイルにある可能性のある追加のログを投稿します。おそらく問題は、メソッド getVAlidInput() を使用し、間違った正規表現を使用して、電子メール アドレスを検証して取得しようとしていることにあります。ファイルとコンソールから完全な正規表現コードと例外ログを投稿してください。

于 2012-06-29T12:10:16.913 に答える
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
        }

// クラス/オブジェクトの呼び出し

AAAA.security このコードはうまくいきました。ネット Bean とそのプロパティ ファイルの構成については、この URLを確認してください。

于 2012-07-02T05:32:41.593 に答える