PDO фильтрация данных

1. Алексей (10.03.2015 / 20:14)
Серфил сейчас по статьям о PDO и наткнулся на вот такое:
Теперь давайте вспомним и о безопасности, ведь все данные нужно проверять. Как мы делали это раньше?

$sql = "SELECT * FROM users WHERE name = $name";
$name = $_POST["name"];

// MySQL
$name = mysql_real_escape_string($name);

// SQLite
$name = sqlite_escape_string($name);

// PostgreSQL
$name = pg_escape_string($name);

Теперь же нам не нужно этого делать. PDO сделает всё за нас.


$name = $db->quote($name);
$result = $db->query($sql);

PDO сам всё проверит и обработает переданные данные. Круто?smile Дальше ещё круче!
То есть теперь можно не переживать на счет инъекций или я что то не так понял?
Ну int в любом случае нужно будет проверять на отрицательные числа.
А вот как со string быть?
Прогонять через strip_tags и потом не боясь в бд записывать?

2. Вантуз-мен (10.03.2015 / 21:42)
1. XwiruS, во всех современных фреймворках данные фильтруют на выводе из БД, а в базу пишут так как есть
используй плейсхолдеры, чтобы не было инъекции, а quote вроде как заключает строки в кавычки для использования в запросе

3. Алексей (10.03.2015 / 22:46)
2. Vantuz, То есть булки расслаблять не стоит.
А про плейсхолдеры сейчас погуглю. Спс.

4. Reflesh (11.03.2015 / 01:09)
1. XwiruS, Только проснулся?) И вообще про mysql_ надо было забыть года три назад )

5. Алексей (11.03.2015 / 08:05)
4. Reflesh, не было необходимости)

6. Владислав (16.08.2016 / 17:32)
Vantuz, PDO::quote() заключает строку в кавычки (если требуется) и экранирует специальные символы внутри строки подходящим для драйвера способом.

7. ramzes (17.08.2016 / 03:20)
1. XwiruS, во всех современных фреймворках данные фильтруют на выводе из БД, а в базу пишут так как есть
используй плейсхолдеры, чтобы не было инъекции, а quote вроде как заключает строки в кавычки для использования в запросе
Vantuz (10.03.15 / 21:42)
и в чем сокрытый смысл парсить текст каждый раз на выходе, чем один раз на входе?

8. Zдешний (17.08.2016 / 13:14)
Вот документацию сейчас никто не любит читать sad

9. Дмитрий (18.08.2016 / 06:34)
ramzes, Поддерживаю.

10. Nu3oN (22.08.2016 / 11:17)
1. XwiruS, во всех современных фреймворках данные фильтруют на выводе из БД, а в базу пишут так как есть
используй плейсхолдеры, чтобы не было инъекции, а quote вроде как заключает строки в кавычки для использования в запросеVantuz (10.03.15 / 21:42)
и в чем сокрытый смысл парсить текст каждый раз на выходе, чем один раз на входе?
ramzes (17.08.16 / 03:20)Vantuz (10.03.15 / 21:42)
Любит наш народ делать кучу запросов в бд, кучу выборок, кучу обработок исходящих данных. Пора привыкнуть к этому

11. ramzes (22.08.2016 / 20:31)
я вообще пишу в бд готовый хтмл (если это хтмл)
а тем кто уверен что безопасный запрос в бд это вин, вспомните, вам еще фильтровать на выводе, при любых манипуляциях (начиная с типов, заканчивая длиной и "опасными" символами)
и вы будете это делать бесконечное кол-во раз.
только потому что в бд теперь можно безопасно и это крута азаза
в конечном итоге даже поиск по бд осложнится тем что вы не будете железно уверены в каком виде у вас там данные, вы же их как есть туда отправили, а как они есть и не знаете, не проверив

URL: https://visavi.net/topics/42115