집 >데이터 베이스 >MySQL 튜토리얼 >`mysql_real_escape_string()`은 여전히 SQL 주입으로부터 안전합니까?
mysql_real_escape_string()은 손상된 함수입니까?
SQL 주입 취약점에도 불구하고 mysql_real_escape_string()의 효율성에 대한 우려가 제기되었습니다. 올바른 사용법. 회의론자들은 오래된 기사를 결함의 증거로 인용합니다.
mysql_real_escape_string()을 여전히 사용할 수 있습니까?
이 질문에 답하기 위해 MySQL C API 문서를 자세히 살펴봅니다. mysql_real_escape_string():
"문자를 변경해야 하는 경우 연결 세트를 설정하려면 SET NAMES를 실행하는 대신 mysql_set_character_set()를 사용하십시오."
코드 데모:
mysql_real_escape_string()
설명:
문서에 따르면 mysql_set_character_set() SET NAMES와 달리 mysql_real_escape_string()이 사용하는 문자 세트에 영향을 미칩니다. 따라서 PHP 애플리케이션에서 인코딩을 변경하려면 mysql_set_charset()을 사용해야 합니다.
결론:
mysql_real_escape_string()이 완전히 깨지지는 않을 수 있지만 반드시 다음을 수행해야 합니다. 적절한 문자 집합 처리를 보장하고 잠재적인 SQL 주입을 방지하려면 mysql_set_character_set()과 함께 사용하십시오. 취약점.
위 내용은 `mysql_real_escape_string()`은 여전히 SQL 주입으로부터 안전합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!