PHP를 사용하여 SQL Server에서 문자열 이스케이프
데이터베이스 프로그래밍 영역에서는 SQL 삽입 공격을 방지하는 것이 무엇보다 중요합니다. SQL 쿼리용 문자열을 이스케이프하는 것은 악의적인 공격으로부터 보호하는 데 중요한 단계입니다.
특히 SQL Server를 다룰 때 많은 개발자는 더 이상 사용되지 않는 PHP의 mysql_real_escape_string() 함수에 대한 대안을 궁금해합니다. addlashes()는 간단한 대체처럼 보일 수 있지만 일부 상황에서는 부족합니다.
Hex Bytestring 솔루션
포괄적인 솔루션을 위해서는 데이터를 다음으로 변환하는 것이 좋습니다. 16진수 바이트열. 이 접근 방식은 모든 데이터 유형과의 범용 호환성을 보장합니다.
$unpacked = unpack('H*hex', $data); mssql_query(' INSERT INTO sometable (somecolumn) VALUES (0x' . $unpacked['hex'] . ') ');
이스케이프를 위한 추상 함수
프로세스를 단순화하려면 사용자 정의 함수를 정의할 수 있습니다.
function mssql_escape($data) { if(is_numeric($data)) return $data; $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } mssql_query(' INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($somevalue) . ') ');
대체 mysql_error()
SQL Server의 오류를 처리하려면 mysql_error()와 유사한 기능을 제공하는 mssql_get_last_message() 함수를 사용하세요.
위 내용은 PHP에서 SQL Server 쿼리에 대한 문자열을 안전하게 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!