>백엔드 개발 >PHP 튜토리얼 >스트립 슬래시 php addlashes 와 mysql_real_escape_string

스트립 슬래시 php addlashes 와 mysql_real_escape_string

WBOY
WBOY원래의
2016-07-29 08:41:431028검색

addlashes와 mysql_real_escape_string의 차이점에 대한 좋은 설명입니다. 비록 많은 국내 PHP 코더들이 여전히 SQL 주입을 방지하기 위해 addlashes에 의존하고 있지만, 저는 여전히 모든 사람들이 중국어로 SQL 주입을 방지하기 위해 검사를 강화할 것을 권장합니다. addlashes의 문제점은 해커가 0xbf27을 사용하여 작은따옴표를 대체할 수 있는 반면, addlashes는 0xbf27을 0xbf5c27로만 변경하므로 유효한 멀티바이트 문자가 됩니다. 0xbf5c는 여전히 작은따옴표로 간주되므로 addlashes는 성공적으로 가로챌 수 없습니다.
물론 addlashes는 쓸모가 없습니다. 단일 바이트 문자열을 처리하는 데 사용됩니다. 다중 바이트 문자의 경우 mysql_real_escape_string을 사용하세요.
또한 PHP 매뉴얼의 get_magic_quotes_gpc 예는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.


if (!get_magic_quotes_gpc() ) {
$lastname = addedlashes($_POST['lastname'])
} else {
$lastname = $_POST['lastname']; }

magic_quotes_gpc가 이미 열려 있는 경우 $_POST['lastname']을 확인하는 것이 가장 좋습니다.
mysql_real_escape_string과 mysql_escape_string 두 함수의 차이점에 대해 이야기해 보겠습니다.
mysql_real_escape_string은 (PHP 4 >= 4.3.0, PHP 5)에서만 사용할 수 있습니다. 그렇지 않으면 mysql_escape_string만 사용할 수 있습니다. 둘 사이의 차이점은 다음과 같습니다.
mysql_real_escape_string은 연결의 현재 문자 집합을 고려하지만 mysql_escape_string은 고려하지 않습니다.
요약하자면:
addslashes()는 강제 추가입니다.
mysql_real_escape_string()은 문자 집합을 결정하지만 PHP 버전에 대한 요구 사항이 있습니다.
mysql_escape_string은 현재 문자 집합을 고려하지 않습니다. 연결.
위 내용은 스트립슬래시 내용을 포함하여 php addlashes 및 mysql_real_escape_string을 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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