2015-06-29 66 views
1

任何人都可以提供一些注意事項來開始在無Web上下文中使用ESAPI嗎? 我來這個小測試驗證與DefaultValidator.isValidCreditCard字符串,但我有一些網絡容器依賴性錯誤。如何從servlet容器中開始使用ESAPI

下面的方法是從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()還會引發依賴性錯誤。

任何建議,開始將不勝感激。

最佳,

何塞

回答

1

ESAPI有一個Servlet過濾器API,需要javax.servlet.ServletRequest是在類路徑中。 ESAPI由OWASP擁有 - >「Open Web Application Security Project」。因此,ESAPI的設計考慮了Web應用程序。

如果您不是在編寫Web應用程序,那麼它是一個控制檯應用程序或一個富客戶端應用程序。如果您不希望使用它連接到外部世界,那麼您真正需要擔心的主要安全實踐是ensuring that you always use safely parameterized queries,並且從連接到外部世界的源傳遞到您的應用程序的任何數據都是正確的逃過一劫。爲此,您唯一需要的是OWASP's encoder project.

+0

感謝您的評論! 我會看看編碼器項目。 – Joselor