защита сайта от sql инъекций

  • Для просмотра чата и остального функционала вам нужно авторизоваться или пройти регистрацию!
A

>A1RN1kE<

Автор темы

Добрый день!
В этой статье я вам расскажу как защитить свой сайт от SQL инъекций. К примеру у нас есть ссылка http://site.com/news.php?id=11 если вместо 11 поставить какой либо символ, например sql http://site.com/news.php?id=sql то скрипт выдаcт ошибку. Таким образом взломщик может произвести запрос в базу данных, и вытащить интересующую его информацию (пароли, логины, e-mail и т.п.) Вот пример уязвимого скрипта:
Код:
php highlight:
if(isset($_GET['id'])) {$id = $_GET['id'];}
if(!isset($id)) {$id = 1;}
//далее sql запрос
Что же нужно сделать чтобы защитить свой сайт? Нужно сделать проверку (является ли id числом). Вот собственно и код проверки:
Код:
php highlight:
if(!pres_match("|^[\d]+$|", $id)) {
exit(" Неверный URL!!!");
}
В общем должно получиться вот так:
Код:
php highlight:
if(isset($_GET['id'])) {$id = $_GET['id'];}
if(!isset($id)) {$id = 1;}

//Проверка
if(!pres_match("|^[\d]+$|", $id)) {
exit(" Неверный URL!!!");
}

//далее sql запрос
Теперь попробуйте в место id=11 прописать id=sql или id=11', вы увидите текст сообщающий о неверном URL, и sql запрос не выполнится)
Спасибо за просмотр...
________________
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.