PHP & SQL: лучший способ защитить этот запрос от SQL-инъекций, НЕ используя PDO - PullRequest
1 голос
/ 20 октября 2010

У меня запрос к базе данных mssql, и я не использую драйверы PDO. Есть ли что-то вроде готового заявления, которое я могу использовать?

Вот запрос:

$tsql = "INSERT INTO cplinktable (liferayid, bmsid, autotaskid, waspdb, cpid) VALUES ($liferayid, $bmsid, $autotaskid, '$waspdb', $cpid)";

спасибо,

Джоунси

Ответы [ 5 ]

2 голосов
/ 20 октября 2010

Драйвер Microsoft SQL для PHP предоставляет подготовленные операторы:

0 голосов
/ 20 октября 2010

это так же просто, как использовать mysql_real_escape для строк и типизацию для цифр / целых / двойных чисел

(int)$number; //Safe
(double)$double; //Safe
mysql_real_escape_string($string); //Safe

Это будет использоваться для каждого фрагмента данных, который вы вставляете в базу данных, будет безопасно

0 голосов
/ 20 октября 2010

Попробуйте подготовить отчеты с помощью sprint ()

$tsql = "INSERT INTO cplinktable (liferayid, bmsid, autotaskid, waspdb, cpid) VALUES (%d, %d, %d, '%s', %d)";

$tsql = sprintf($tsql, $liferayid, $bmsid, $autotaskid, $waspdb, $cpid);
echo $tsql; // you would execute this but printing to the screen to show the query
0 голосов
/ 20 октября 2010
$query = sprintf("INSERT INTO cplinktable (liferayid, bmsid, autotaskid, waspdb, cpid) VALUES ('%s','%s','%s','%s','%s')",
            mysql_real_escape_string($liferavid),
            mysql_real_escape_string($bmsid),
            mysql_real_escape_string($autotaskid),
            mysql_real_escape_string($waspdb),
            mysql_real_escape_string($cpid));
0 голосов
/ 20 октября 2010

Вы должны по крайней мере экранировать значения.

Руководство по PHP - mysql_real_escape_string

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...