2010-12-22 2 views
3

Doctrine은 자동으로 SQL 삽입을 방지합니까?
다음 코드가 안전합니까?Doctrine과 SQL 삽입

$user = new Model_User(); 
$user->name = $_POST['username']; 
$user->save(); 

답변

4

SQL 인젝션에 관해서는 아무런 문제가 없을 것이라고 생각합니다. 그러나 사용자 이름이 올바른지 확인하고 싶을 수도 있습니다 (예 : <script>//do somthing bad</script> 일 수 있으며 사이트의 어딘가에서 해당 사용자 이름을 출력 할 때 해당 스크립트가 실행될 수 있습니다)

3

안전 할 것입니다 bound parameters을 사용하는 한 Doctrine (및 다른 PDO 기반 데이터베이스 라이브러리)을 사용하는 SQL 주입 (Doctrine은 이러한 예제를 사용하므로 Doctrine이 예제를 사용할 수는 있지만) 클라이언트에서 입력을 사용하지 않아야합니다 먼저. PHP의 필터 라이브러리, 특히 위생 예를 살펴보십시오. 귀하의 경우 적어도 이름이 FILTER_SANITIZE_STRING "스트립 태그를 사용하는 문자열이며, 선택적으로 특수 문자를 제거하거나 인코딩 할 수 있음을 확인하는 것이 좋습니다."