HTMLSpecialChars 및 MySQL_real_escape_string은 PHP에서 코드 삽입에 대한 완벽한 보호를 제공합니까?
질문:
HTMLSpecialChars 및 MySQL_real_escape_string으로 충분합니까? PHP의 주입 공격으로부터 보호합니까? 이러한 기능에 제한이나 취약점이 있습니까?
답변:
준비된 매개변수화된 쿼리
데이터베이스 쿼리의 경우 우선순위를 지정하세요. MySQLi 또는 PDO와 같은 라이브러리에서 지원되는 준비된 매개변수화된 쿼리 사용. 이러한 방법은 MySQL_real_escape_string과 같은 문자열 이스케이프 함수보다 훨씬 더 안전합니다.
MySQL_real_escape_string 제한 사항
MySQL_real_escape_string은 쿼리 문자열에서 위험한 문자를 안전하게 사용할 수 있도록 이스케이프합니다. 그러나 입력이 사전에 삭제되지 않으면 이 접근 방식은 충분하지 않습니다. 다음 코드를 고려해 보세요.
$result = "SELECT fields FROM table WHERE id = ".mysqli_real_escape_string($_POST['id']);
공격자는 필터를 통과하여 주입 벡터로 이어지는 "1 OR 1=1"을 주입하여 이 코드를 악용할 수 있습니다.
HTMLSpecialChars 취약점
HTMLSpecialChars도 나타날 수 있습니다. 과제:
최고 사례
이러한 취약점을 완화하려면 다음을 고려하세요.
결론
HTMLSpecialChars 및 MySQL_real_escape_string은 주입 공격을 방지하는 데 도움이 될 수 있지만 입력 유효성 검사에 주의 깊게 접근하는 것이 중요합니다. 한계를 이해하고 준비된 매개변수화된 쿼리, 입력 유효성 검사, 멀티바이트 인식 인코딩 기술과 같은 추가 보호 장치를 사용하세요.
위 내용은 `HTMLSpecialChars` 및 `MySQL_real_escape_string`은 PHP 코드 삽입으로부터 완벽한 보호를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!