PDO Вставка с POST - PullRequest
       1

PDO Вставка с POST

0 голосов
/ 22 февраля 2012

В настоящее время у меня есть этот тип оператора PDO для вставки переменных в массив ниже. Мне сказали, что использование операторов PDO будет самым безопасным способом вставки в PHP.

$qry = $db->prepare('INSERT INTO twocents (path, name, message) VALUES (?, ?, ?)');
$qry->execute(array($path, $name, $message));

Теперь, будет ли установка $path, $name и $message для значений POST из опубликованной формы все еще такой же безопасной? Я не уверен, как иначе вы бы сделали INSERT, если бы эти переменные ничего не устанавливали.

Спасибо!

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

Да, это абсолютно безопасно с точки зрения предотвращения SQL-инъекций.

Однако вам, вероятно, все равно придется экранировать данные при выводе, например, если $message вы получили <script language="Javascript" src="http://evil.site.com/evil.script.js"></script>, вывероятно, не захочется выводить его с <p><?=$message?></p>.Некоторые механизмы шаблонов (например, XSLT) устраняют эту проблему путем отдельной обработки кода и данных HTML (XML), поэтому в <p><xsl:value-of select="message"/></p> message обрабатывается как текстовое значение узла <p/> и автоматически экранируется при записиобработал XML в строку.

0 голосов
/ 22 февраля 2012

Да. Он защищен (только от инъекций sql).

0 голосов
/ 22 февраля 2012

В некоторых случаях это, вероятно, будет хорошо.Однако вы, вероятно, захотите выполнить какой-либо тип очистки для данных $ _POST, прежде чем вставлять их в подготовленный оператор.В противном случае, вы можете получить некоторые грубые данные в базе данных.Готовое заявление помогает, независимо от того.

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