Защита от SQL-инъекции (PHP)

elitedesign
На сайте с 25.10.2012
Offline
69
1299

Здравствуйте.

Подскажите пожалуйста. Защитит ли от SQL-инъекций входящих данных вот такая конструкция вначала PHP-файла:

if(isset($_POST)&&sizeof($_POST)) {
foreach($_POST as $key => $value) {
$_POST[$key]=$mysqli->real_escape_string($value);
}
}
if(isset($_GET)&&sizeof($_GET)) {
foreach($_GET as $key => $value) {
$_GET[$key]=$mysqli->real_escape_string(urldecode($value));
}
}

Спасибо.

L
На сайте с 07.12.2007
Offline
351
#1

Есть SQL-инъекции второго уровня(когда данные достаются из БД и потом используются в другом sql-запросе) или на Хабре по-русски.

В вашем варианте, если PHP < 5.4.0, надо проверять состояние magic quotes, а то может получиться двойное экранирование.

PS: prepared statements (или подготовленные запросы) считаются надёжнее - там данные передаются отдельно от sql-запроса и экранировать их не надо.

SeVlad
На сайте с 03.11.2008
Offline
1609
#2
elitedesign:
Защитит ли от SQL-инъекций входящих данных вот такая конструкция вначала PHP-файла

Универсальной защиты не может существовать.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
TF-Studio
На сайте с 17.08.2010
Offline
334
#3
iiname:
Используйте фильтрацию непосредственно в sql запросах.
Так-как вам нужно фильтровать, все глобальные массивы: $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE, $GLOBALS.

Массивы могут быть многоуровневыми.
Если всё же хотите использовать данный метод, используйте функцию array_walk_recursive().

Зы: Драйвер Mysqli тормозной.

ужасный совет.

Нормальный дали уже выше

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
elitedesign
На сайте с 25.10.2012
Offline
69
#4

Большое спасибо всем за советы и помощь. Удачной работы и хорошего настроения!

eN_Slon
На сайте с 13.02.2007
Offline
159
#5

так придуман же ж уже велосипед.

возьмите dbsimple например. там уже все за вас придумано.

Парсинг, граббинг, автоматизация всего что вы можете сделать в браузере(и не только) сами. Любое кол-во, любые защиты.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий