Kohana는 mysql_real_escape_string을 사용하여 설명서에서 데이터베이스 입력을 위생적으로 처리한다고 언급합니다. 그러나 양식을 통해 몇 가지 기본 쿼리를 시음하는 동안 입력 한대로 데이터베이스에 입력되었습니다. 예를 들면 다음과 같습니다.Kohana 2.3.4 ORM sql injection protection
SELECT * FROM users WHERE username='admin' AND password='' OR ''=''
은 표시된대로 정확하게 그 mysql 데이터에 입력됩니다. 나는 데이터베이스 대신 ORM 라이브러리를 사용하고
SELECT * FROM users WHERE username=\'admin\' AND password=\'\' OR \'\'=\'\'
,하지만 난 그들이 함께 일을 알고 : 내가보고 기다리고 있었다. 또한 양식에서 데이터를 수집하기 위해 내장 된 입력 라이브러리 ($ this-> input-post)를 사용하고 있습니다. 나는 보안과 관련된 컨트롤러 나 라이브러리를 변경하지 않았다.
나는 아직 소스 코드를 빗질하지 않았지만 Kohana가 문자열을 이스케이프 처리 한 다음 db 필드에 입력하기 전에 슬래시를 제거합니까? 나는 이것이 사실 일 것이라고 확신하지만 확신하고 싶다.
감사
자세한 답변 해 주셔서 감사합니다. – anthony