저는 sqlsrv 드라이버를 사용하는 PHP MSSQL 프로젝트에서 일하고 있습니다. SQL 인젝션 공격을 막는 가장 좋은 방법은 무엇입니까? sqlsrv 드라이버에는 mysql_real_escape_string()과 같은 것이 필요합니다.PHP 및 sqlsrv 드라이버로 입력을 살균하는 방법은 무엇입니까?
2
A
답변
1
mysql_real_escape_string()
의 아날로그를 사용해야하므로 SQL을 작성하지 않아야합니다. 그러면 값에 대한 자리 표시자를 사용하고 변수 (예 : mysql_real_escape_string()
에 의해 처리되었을 것임)를 전달할 때 수행 할 수 있습니다. 문을 실행하거나 커서 또는 다른 것을 열 수 있습니다.
오류가 발생하면 mysql_real_escape_string()
의 출력을 확인하십시오. 그것은 MS SQL Server에도 적절할 수 있습니다. 탈출을하는 방법 (탈출)에 따라 다릅니다. 이처럼 사용하는 경우
3
는, 인용은 자동으로 :
$sql = "exec usp_cis_upd
@key = ?,
@value = ?";
$params = array(
$key,
trim($_POST["value"]));
$stmt = sqlsrv_query($dbh, $sql, $params);