PHP를 사용하여 SQL Server에서 문자열 이스케이프하기: 종합 가이드
PHP를 사용하여 SQL Server로 작업할 때는 다음으로부터 데이터를 보호하는 것이 중요합니다. 문자열을 적절하게 이스케이프하여 SQL 주입 공격을 수행합니다. 악의적인 입력이 SQL 명령어로 해석되는 것을 방지하기 위한 기술입니다.
mysql_real_escape_string()의 대안
SQL Server는 MySQL과 달리 내장된 mysql_real_escape_string()과 동일한 함수입니다.
Enter addslashes()
addslashes()는 문자열 이스케이프에 대한 잠재적인 대안으로 종종 간주되는 PHP 함수입니다. 그러나 addlashes()는 SQL Server 데이터베이스와 함께 사용하기에 완전히 적합하지 않다는 점에 유의하는 것이 중요합니다.
더 강력한 솔루션
이상적인 솔루션은 수동으로 인코딩하는 것입니다. 데이터를 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!