2013-09-04 1 views
1

Интересно, мне нужно избежать $ _POST и/или $ _GET массивов в PDO? (ООП)

Пример:

<?php $name = $_POST['name']; ?> 

Что я должен сделать, чтобы предотвратить "SQL Injection" с этим? Благодарю.

+0

Если вы его приготовите, вам не нужно бежать. Нужен только «isset». –

+0

Возможный дубликат [Как предотвратить SQL-инъекцию в PHP?] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Quentin

ответ

1

НЕТ

Двойной НЕТ.

  • Вам не следует убежать.
  • вы не должны уделять особого внимания переменным $ _POST или $ _GET.

Что я должен сделать, чтобы предотвратить "SQL Injection"

  1. Вместо того, чтобы избежать вы должны использовать подготовленные заявления
  2. это данные назначения, а не источник, вопросы.

Любая переменная, которая входит в SQL-запрос, должна быть добавлена ​​только через заполнитель, независимо от того, идет ли она из почтового отправления, GET или ATM-перевода.

1

если вы используете PDO вы можете использовать подготовить запрос

Здесь у вас есть хорошие примеры:

http://php.net/manual/en/pdo.prepare.php

PDO избежит для вас значение перед запросом (с подготовить заявление) , поэтому вам не нужно об этом беспокоиться.

0

Вы должны использовать подготовленные заявления. PDO не только выдает значения для вас, но и делает строку запроса более приятной и проще для обслуживания в дальнейшем.

$sql = 'SELECT * FROM users WHERE id=?'; 
$dbh->execute(array("@p1", $_GET['blah'])); 

Я использую хэш-PHP, когда мне нужна помощь с PDO, они немного легче понять.

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

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

  • Нет связанных вопросов^_^