Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опасные SQL-запросы?
 
 автор: DEM   (09.08.2007 в 02:23)   письмо автору
 
 

Какие есть действительно "опасные" запросы? ВОт например не проверил числоовую переменуную intval`ом и мне тут БАЦ, вместо числа аписали запрос и узнали пароль и логин от БД, как будет выглядеть этот запрос и какие еще есть запросы, которые смогут узнать какую нить информацию?

   
 
 автор: DEM   (09.08.2007 в 02:29)   письмо автору
 
   для: DEM   (09.08.2007 в 02:23)
 

И еще, мне когда-то писали, что мой метод проверки данных очень дырявыйй (когда я проверял всеми функциями, созданными для этого :) )... Теперь я проверяю, как советовал ХЕОПС, но до сих пор интересно, в чём была ошибка такой проверки? ЧТо можно было ввести, что бы защита сама себя перемудрила и не сработала?

   
 
 автор: tAleks   (09.08.2007 в 21:03)   письмо автору
 
   для: DEM   (09.08.2007 в 02:29)
 

Дайте ссылку на тему с рекомендациями ХЕОПСА.

   
 
 автор: Unkind   (09.08.2007 в 03:04)   письмо автору
 
   для: DEM   (09.08.2007 в 02:23)
 

intval() ничего не проверяет. Просто приводит к целочисленному типу.

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

А вот защита от взлома, к счастью или к несчастью - кому как, ничем не похожа на онлайн-игры, где нужно кастовать кучи заклинаний. Поэтому заблуждение "чем больше функций, тем лучше" забудте.

   
 
 автор: JIEXA   (10.08.2007 в 01:57)   письмо автору
 
   для: DEM   (09.08.2007 в 02:23)
 

все что помещаете в БД обрабатывайте ф-ий mysql_escape_string и спите спокойно!

   
 
 автор: Unkind   (10.08.2007 в 03:54)   письмо автору
 
   для: JIEXA   (10.08.2007 в 01:57)
 

Injection можно провести и без использования кавычек.

   
 
 автор: Ralph   (10.08.2007 в 06:59)   письмо автору
 
   для: Unkind   (10.08.2007 в 03:54)
 

А вот с этого места пожалуйста поподробней...
<добавлено через 15 минут прогулки в гугле> Ага,к примеру,использование ; если числовая переменная пользователя $a насильно не приводится к числу через intval,doubleval... в запросе вида "...where st=$a"

   
 
 автор: Trianon   (10.08.2007 в 09:27)   письмо автору
 
   для: Ralph   (10.08.2007 в 06:59)
 

не обязательно константа.
Это может быть любой подставленный фрагмент SQL, не ужатый предварительно в приемлимый синтаксис. Имя поля, например.

   
 
 автор: Ralph   (10.08.2007 в 10:58)   письмо автору
 
   для: Trianon   (10.08.2007 в 09:27)
 

В ОБЩЕМ,суммируя все,если переменная пользователя будет использоваться в запросе как число,надо или насильно привести ее к числовому типу ( что тоже правда не всегда корректно ),либо проверять ее на "числовость".Если же переменная будет выступать в роли строки,обрабатывать ее mysql_escape_string ... Вот только у меня возник вопрос:а если в переменную вставить одинарную кавычку в виде %...( блин,забыл ее ASCII код :-( ),что будет ?

   
 
 автор: Trianon   (10.08.2007 в 11:10)   письмо автору
 
   для: Ralph   (10.08.2007 в 10:58)
 

если в переменную вставить одинарную кавычку в виде %27,что будет ?

В переменной окажутся 3 символа % 2 и 7

   
 
 автор: Faraon   (10.08.2007 в 11:20)   письмо автору
 
   для: Trianon   (10.08.2007 в 11:10)
 

Воспользоваться is_numeric

   
 
 автор: Ralph   (10.08.2007 в 11:29)   письмо автору
 
   для: Faraon   (10.08.2007 в 11:20)
 

Я имел в виду строчную переменную...Просто где то читал про использование % для создания уязвимости,но еще не разобрался с этим вопросом

   
 
 автор: Ralph   (10.08.2007 в 15:11)   письмо автору
 
   для: Trianon   (10.08.2007 в 11:10)
 

Блин,это называется "слышал звон...".И причем здесь вообще urlencode'рованные символы к SQL-инъекции ? :-(

   
 
 автор: Trianon   (10.08.2007 в 19:29)   письмо автору
 
   для: Ralph   (10.08.2007 в 15:11)
 

>Блин,это называется "слышал звон...".И причем здесь вообще urlencode'рованные символы к SQL-инъекции ? :-(

Вы меня спрашиваете?
Я не знаю даже при чем здесь переменная.

   
 
 автор: Ralph   (10.08.2007 в 20:42)   письмо автору
 
   для: Trianon   (10.08.2007 в 19:29)
 

Да это я про себя...Здесь же прочел статью,символ % запомнил,а слова "подставим в url строку..." и "при подстановке в числовое выражение '...where a=$user_var' " мимо глаз пропустил.Что называется,сравнил палец с ...другим пальцем :-(

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования