2014-01-16 3 views
-1

SQL-Injection + PDO_MySQL = ОпасностьSQL-Injection + PDO_MySQL = Опасность

• Традиционно MySQL позволяет только один SQL-запрос

внутр/MySQL - останавливает мульти-запросов полностью внутр/Мысли - имеет отдельную функцию mysql_multi_query()

• ВНИМАНИЕ: PDO_MySQL не имеют этого ограничения
• инъекции SQL в заявке ZF с использованием PDO_MySQL является более опасным, чем в приложениях, использующих традиционные интерфейсы MySQL.

Как долго это верно? Я прочитал (а) here

Я прочитал zf, это очень безопасный фреймворк, но я не нашел ничего встроенного в него для обеспечения безопасности db.

+2

Когда вы помещаете цитаты в свой вопрос, процитируйте источники. –

+0

Я добавил ссылку для источника. –

+1

Бульдозер может причинить вам боль сильнее, чем лопатой. Это нормально, если вы не позволяете своим детям ездить на нем. –

ответ

3

Это не имеет значения. Инъекция может быть хуже, но вы просто не должны допускать инъекций.

Никогда не связывайте непроверенные входы в строках для построения SQL.

Всегда используйте подготовленные операторы: они предотвратят разрыв вашего запроса в несколько запросов.

Когда вы

$sql = 'SELECT name, colour, calories FROM fruit 
    WHERE calories < :calories AND colour = :colour'; 
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 
$sth->execute(array(':calories' => 150, ':colour' => 'red')); 

нет никакого способа для поставщика значения, чтобы разорвать этот запрос и сделать что-то не чем иным, как select (например, принятых here).

Смежные вопросы