2017-10-10 3 views
0

이 명령문은 당연히 가능 LDAP_Injection만큼 Checkmarx 의해 플래그된다. ESAPI-인코더와 Checkmarx, LDAP-주입 ESAPI.encodeForLDAP

String filter = "(&(objectclass=accessGroup)(member=cn=*)(dsApplicationName=" + application + "))"; 

, 나는이 문제를 해결할 것을 기대 :

String saneApplication = org.owasp.esapi.reference.DefaultEncoder.getInstance().encodeForLDAP(application); 
String filter = "(&(objectclass=accessGroup)(member=cn=*)(dsApplicationName=" + saneApplication + "))"; 

그러나 Checkmarx 여전히 플래그 그것을 LDAP_Injection한다.

이 문제를 올바르게 해결할 방법이 없습니다.

감사 토마스

답변

1

당신은 CxAudit를 사용하여 쿼리에서 소독제로 사용되는 기능을 대체 할 수 있습니다.
예. Find_LDAP_Sanitize()에 대한 프로젝트/회사 재정의가 있고 원본에 추가하여 ESAPI 함수를 포함합니다. 메소드 호출을 선택하고 원래 목록에 추가합니다.

P. 이미이 기본에 추가하기를 요구하지만 할 때 아무 생각이

P.P.S. :-) OWASP ESAPI는 OWASP Encoder 프로젝트로 대체되고 있지만 실제로는 LDAP 인코딩을 지원하지 않습니다.
장기간 동안 연결을 피하기 위해 코드를 재구성 할 수 있습니다.