>백엔드 개발 >PHP 튜토리얼 >mysql_real_escape_string()은 여전히 ​​SQL 주입에 대한 보호 장치입니까?

mysql_real_escape_string()은 여전히 ​​SQL 주입에 대한 보호 장치입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-09 14:11:02538검색

Is mysql_real_escape_string() Still a Safeguard Against SQL Injection?

mysql_real_escape_string()이 SQL 주입에 취약합니까?

SQL 주입을 방지하는 데 있어 mysql_real_escape_string()의 효율성에 대한 우려가 제기되었습니다. 일부 이전 기사에서는 이 함수에 결함이 있을 수 있다고 제안합니다.

mysql_real_escape_string()을 안전하게 사용할 수 있습니까?

이 질문에 대한 대답은 함수의 한계를 이해하는 데 있습니다. MySQL C API 문서에 따르면:

If you need to change the character set of the connection, you should use the mysql_set_character_set() function rather than executing a SET NAMES (or SET CHARACTER SET) statement. mysql_set_character_set() works like SET NAMES but also affects the character set used by mysql_real_escape_string(), which SET NAMES does not.

따라서 최대의 보안을 보장하려면 SET NAMES/SET CHARACTER SET 대신 mysql_set_charset()을 사용하여 인코딩을 변경하는 것이 중요합니다. 이는 mysql_set_charset()가 mysql_real_escape_string()에서 사용하는 문자 집합에 영향을 미치는 MySQL의 mysql_set_character_set() 함수와 일치하기 때문입니다.

이러한 지침을 따르면 mysql_real_escape_string()을 효과적으로 사용하여 SQL 주입으로부터 쿼리를 보호할 수 있습니다. .

위 내용은 mysql_real_escape_string()은 여전히 ​​SQL 주입에 대한 보호 장치입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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