|
|
|
| Какие есть действительно "опасные" запросы? ВОт например не проверил числоовую переменуную intval`ом и мне тут БАЦ, вместо числа аписали запрос и узнали пароль и логин от БД, как будет выглядеть этот запрос и какие еще есть запросы, которые смогут узнать какую нить информацию? | |
|
|
|
|
|
|
|
для: DEM
(09.08.2007 в 02:23)
| | И еще, мне когда-то писали, что мой метод проверки данных очень дырявыйй (когда я проверял всеми функциями, созданными для этого :) )... Теперь я проверяю, как советовал ХЕОПС, но до сих пор интересно, в чём была ошибка такой проверки? ЧТо можно было ввести, что бы защита сама себя перемудрила и не сработала? | |
|
|
|
|
|
|
|
для: DEM
(09.08.2007 в 02:29)
| | Дайте ссылку на тему с рекомендациями ХЕОПСА. | |
|
|
|
|
|
|
|
для: DEM
(09.08.2007 в 02:23)
| | intval() ничего не проверяет. Просто приводит к целочисленному типу.
Все зависит от конкретного кода. Если бы Вы его привели, то тогда можно было бы о чем-то говорить.
А вот защита от взлома, к счастью или к несчастью - кому как, ничем не похожа на онлайн-игры, где нужно кастовать кучи заклинаний. Поэтому заблуждение "чем больше функций, тем лучше" забудте. | |
|
|
|
|
|
|
|
для: DEM
(09.08.2007 в 02:23)
| | все что помещаете в БД обрабатывайте ф-ий mysql_escape_string и спите спокойно! | |
|
|
|
|
|
|
|
для: JIEXA
(10.08.2007 в 01:57)
| | Injection можно провести и без использования кавычек. | |
|
|
|
|
|
|
|
для: Unkind
(10.08.2007 в 03:54)
| | А вот с этого места пожалуйста поподробней...
<добавлено через 15 минут прогулки в гугле> Ага,к примеру,использование ; если числовая переменная пользователя $a насильно не приводится к числу через intval,doubleval... в запросе вида "...where st=$a" | |
|
|
|
|
|
|
|
для: Ralph
(10.08.2007 в 06:59)
| | не обязательно константа.
Это может быть любой подставленный фрагмент SQL, не ужатый предварительно в приемлимый синтаксис. Имя поля, например. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2007 в 09:27)
| | В ОБЩЕМ,суммируя все,если переменная пользователя будет использоваться в запросе как число,надо или насильно привести ее к числовому типу ( что тоже правда не всегда корректно ),либо проверять ее на "числовость".Если же переменная будет выступать в роли строки,обрабатывать ее mysql_escape_string ... Вот только у меня возник вопрос:а если в переменную вставить одинарную кавычку в виде %...( блин,забыл ее ASCII код :-( ),что будет ? | |
|
|
|
|
|
|
|
для: Ralph
(10.08.2007 в 10:58)
| | если в переменную вставить одинарную кавычку в виде %27,что будет ?
В переменной окажутся 3 символа % 2 и 7 | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2007 в 11:10)
| | Воспользоваться is_numeric | |
|
|
|
|
|
|
|
для: Faraon
(10.08.2007 в 11:20)
| | Я имел в виду строчную переменную...Просто где то читал про использование % для создания уязвимости,но еще не разобрался с этим вопросом | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2007 в 11:10)
| | Блин,это называется "слышал звон...".И причем здесь вообще urlencode'рованные символы к SQL-инъекции ? :-( | |
|
|
|
|
|
|
|
для: Ralph
(10.08.2007 в 15:11)
| | >Блин,это называется "слышал звон...".И причем здесь вообще urlencode'рованные символы к SQL-инъекции ? :-(
Вы меня спрашиваете?
Я не знаю даже при чем здесь переменная. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2007 в 19:29)
| | Да это я про себя...Здесь же прочел статью,символ % запомнил,а слова "подставим в url строку..." и "при подстановке в числовое выражение '...where a=$user_var' " мимо глаз пропустил.Что называется,сравнил палец с ...другим пальцем :-( | |
|
|
|