2012-06-04 2 views
0

보안 문제 - SQL Injection에 대한 감사 보고서 코드를 수정합니다. 다음 코드는 레코드를 삭제하는 데 광범위하게 사용됩니다. 메소드는 기본 클래스에서 정의되며 모듈의 다른 모든 DAO 레벨 클래스에 의해 확장됩니다.SQL 주입 문제 - getHibernateTemplate(). delete (getObject (objectClass, objectId)) 메서드

public void delete(Class objectClass, long objectId)throws DAOException{ 
     try{ 
      getHibernateTemplate().delete(getObject(objectClass,objectId)); 
     }catch(Exception e){ 
      throw new DAOException(e); 
     } 
    } 

그리고, 메소드 호출 getHibernateTemplate를() 삭제 (으로 getObject (방법 objectClass, OBJECTID)).;

은 SQL 삽입에 취약한 것으로보고되었습니다.

"서블릿 요청 ("getObject (objectClass, objectId) ")에서 User Defined Dangerous로받은 데이터의 주입.

문제를 해결하는 방법. 나는 숙제를 충분히했고 HQL의 prepared statement로 이미 몇 가지 SQL 주입 문제를 수정했다.

미리 감사드립니다.

+0

은 누구에게보고 되었습니까? 기자가 잘못되었습니다. –

+0

Nizet, 얘야, 내가 틀렸어. 나는 자바 개발자이며 코드 감사 보고서는 PCI 표준에 위배되며 코드 감사를위한 도구로 수행되었다. 그리고 만약에 해결책이 있다면 말해줘. 어떻게 잘못 됐는지 말하는거야? –

+0

해결해주세요. 키를 누르십시오. 위의 코드를 SQL에 삽입 할 방법이 없으므로 잘못되었습니다. 그리고 인용문이 무엇을 의미하는지조차 이해할 수 없기 때문에 그것도 잘못되었습니다. –

답변

0

답변 -이 방법 자체는 바인딩 매개 변수를 사용하며 Log4j API에서 확인할 수 있습니다. 바인딩 매개 변수에 대한 로그를 확인했으며이 문제에 대한 SQL 주입을 실행할 수 없습니다.