>데이터 베이스 >MySQL 튜토리얼 >`mysql_real_escape_string()`은 여전히 ​​SQL 주입으로부터 안전합니까?

`mysql_real_escape_string()`은 여전히 ​​SQL 주입으로부터 안전합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-07 14:41:11788검색

Is `mysql_real_escape_string()` Still Secure Against SQL Injection?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.