2013-02-05 2 views
1

나머지 코드를 간단하게 유지하려면 function을 살균 처리하려고합니다. 이후 나는 다음 코드가 맞는지 MYSQLi 사용하고 있습니다 궁금해? 대신 SQL 주입을 방지하기 위해 real_escape_string()를 사용하는 prepared statements를 사용해야합니다 SQL 주입

에서

방지 :

function sanitize ($data){ 
    global $db_connect; 
    return htmlentities(strip_tags($db_connect->real_escape_string($data))); 
} 

function array_sanitize ($item) { 
    global $db_connect; 
    $item = htmlentities(strip_tags($db_connect->real_escape_string($item))); 
} 
+0

어레이를 위생 처리 하시겠습니까? 두 방법 모두 나에게 똑같이 보입니까? (그러나 유효합니다). 또한 준비된 진술은 위생의 필요성을 제거 할 것임을 명심하십시오. –

+0

'htmlentities()'는 데이터베이스 쿼리가 아닌 웹 페이지에 데이터를 표시하기위한 것입니다. 데이터베이스에 '&'과 같이 인코딩 된 데이터가있을 가능성은 거의 없습니다. – Barmar

답변

1

난 당신이 문자열을 소독 두 가지 이유를 참조하십시오. Mysqli 확장은 준비된 문을 지원합니다. 그들은 가장 안전하고 사용하기 쉽습니다. 그것을 써.

방지 XSS 공격

는 XSS 공격 htmlentities()에서 방지하고 strip_tags() 도움이 될 수 있습니다. 또한 입력 문자 세트를 올바르게 처리하는 함수인지 확인해야합니다.

OWASP