PHP를 사용하여 SQL Server와 상호 작용할 때 사용자가 제공한 데이터가 올바르게 이스케이프되었는지 확인하는 것이 중요합니다. 주입 공격. mysql_real_escape_string()은 MySQL에서 일반적으로 사용되지만 SQL Server에서는 사용할 수 없습니다.
MySQL과 달리 SQL Server는 다음을 위한 전용 함수를 제공하지 않습니다. 문자열 이스케이프. 그러나 자신만의 함수를 만들 수 있습니다.
function mssql_escape($data) { if (is_numeric($data)) { return $data; } $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } $escaped_value = mssql_escape($user_input);
이 함수는 데이터를 16진수 바이트 문자열로 인코딩하여 모든 특수 문자가 이스케이프되도록 합니다.
SQL Server에서 오류 메시지를 검색하려면 다음을 사용하세요. mssql_get_last_message():
$error_message = mssql_get_last_message();
이 함수는 SQL Server 쿼리 실행으로 생성된 마지막 오류 메시지를 검색합니다.
이러한 함수를 결합하면 안전하게 삽입할 수 있습니다. SQL Server 테이블에 대한 사용자 입력:
$connection = mssql_connect(...); $query = 'INSERT INTO sometable (somecolumn) VALUES (' . mssql_escape($user_input) . ')'; $result = mssql_query($query, $connection); if (!$result) { $error_message = mssql_get_last_message(); // Retrieve error message }
위 내용은 PHP를 사용할 때 SQL Server에서 문자열을 안전하게 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!