Как очистить ввод с помощью PHP и драйвера sqlsrv? - PullRequest
2 голосов
/ 30 сентября 2011

Я работаю над проектом PHP MSSQL, который использует драйвер sqlsrv.Какой лучший способ остановить атаки SQL-инъекций?Мне нужно что-то вроде mysql_real_escape_string (), но для драйвера sqlsrv.

Ответы [ 2 ]

4 голосов
/ 14 мая 2012

Если вы используете это, цитирование происходит автоматически:

$sql = "exec usp_cis_upd
        @key = ?,
        @value = ?";

$params = array(
    $key,
    trim($_POST["value"]));

$stmt = sqlsrv_query($dbh, $sql, $params);
1 голос
/ 30 сентября 2011

Лучший способ - не писать свой SQL, так что вам нужно использовать аналог mysql_real_escape_string(), что вы сделали бы, используя заполнители для значений и затем передав переменные (которые в противном случае были бы обработаны mysql_real_escape_string()) когда вы выполняете оператор или открываете курсор или что-то еще.

Если это не так, посмотрите на вывод mysql_real_escape_string(); это может быть уместно и для MS SQL Server. Это зависит от того, как он выполняет побег (и что он делает).

...