mysql_real_escape_string()이 SQL 주입 공격을 완벽하게 방지할 수 있습니까?
작업 시 SQL 주입에 대한 mysql_real_escape_string()의 효율성에 대한 우려가 제기되었습니다. 특정 아시아 캐릭터와 함께 인코딩.
우회 문제
소스에 따르면 mysql_real_escape_string()은 Big5 또는 GBK 문자 인코딩을 사용하여 우회하는 데 취약할 수 있습니다. 이러한 인코딩을 사용하면 백슬래시가 두 번째, 세 번째 또는 네 번째 바이트로 표시되어 이스케이프 프로세스가 중단될 수 있습니다.
완화 전략
mysql_real_escape_string()이 그렇지 않을 수도 있습니다. 모든 경우에 완전히 신뢰할 수 있으며 SQL을 방지하기 위한 대체 조치가 있습니다. 주입:
준비된 진술이 없는 경우
준비된 진술이 선택 사항이 아닌 경우 다음을 고려하십시오.
결론
mysql_real_escape_string()은 아니지만 완전히 변조 방지 기능을 갖추고 있어 SQL 주입을 방지하는 데 유용한 도구로 남아 있습니다. UTF-8 인코딩 또는 입력 필터링과 같은 추가 완화 전략을 구현하면 악의적인 공격의 위험을 크게 줄일 수 있습니다.
위 내용은 mysql_real_escape_string()은 SQL 주입 공격으로부터 완벽한 보호를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!