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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: SQL Injection

Сообщения:  [1-10]   [11-16] 

 
 автор: Trianon   (18.12.2008 в 00:21)   письмо автору
 
   для: tokmak   (17.12.2008 в 23:41)
 

>... Но согласитесь, лучше уж, хоть какая-та защита, чем вообще никакой. ;)

А я не соглашусь с самим принципом.
Защита дарит надежду.
А негодная защита имеет следствием атаку тогда и там, где её совсем не ждешь.

  Ответить  
 
 автор: tokmak   (18.12.2008 в 00:19)   письмо автору
 
   для: BinLaden   (18.12.2008 в 00:11)
 

Теперь вот сижу ищу инфу по preg_match... чтобы более подробней с ней разобраться....

  Ответить  
 
 автор: BinLaden   (18.12.2008 в 00:11)   письмо автору
 
   для: tokmak   (18.12.2008 в 00:04)
 

Вообще говоря, нужно поставить ! перед preg_match() теперь

  Ответить  
 
 автор: tokmak   (18.12.2008 в 00:04)   письмо автору
 
   для: BinLaden   (17.12.2008 в 23:58)
 

/^[0-9]+$/
?id=111d если ввести такое значение, то preg_match думает, что это все цифры :D
именно при таком значении id, а остальные работают норм.

Спасибо! Пригодится!

Блин, вот что значит пишут в статьях по безопастности кода!

  Ответить  
 
 автор: BinLaden   (17.12.2008 в 23:58)   письмо автору
 
   для: tokmak   (17.12.2008 в 23:57)
 

/^[0-9]+$/ или /^\d+$/

  Ответить  
 
 автор: tokmak   (17.12.2008 в 23:57)   письмо автору
 
   для: BinLaden   (17.12.2008 в 23:46)
 

опа... прошу поправьте меня насчет preg_match. Как необходимо правильно проверить?
Сорри за оффтоп...

  Ответить  
 
 автор: BinLaden   (17.12.2008 в 23:46)   письмо автору
 
   для: tokmak   (17.12.2008 в 23:41)
 

> Но согласитесь
Не соглашусь. Ваш код неверен и условие !is_int($_GET['id']) будет выполняться всегда. Для проверки того, что $_GET['id'] - набор цифр существует, например, ctype_digit().

> "/[0-9]/i"
Вы проверяете наличие хотя бы одной цифры.

  Ответить  
 
 автор: AcidTrash   (17.12.2008 в 23:46)   письмо автору
 
   для: tokmak   (17.12.2008 в 23:41)
 

>Ну можно и вот так (это для автора):
А не проще воспользоваться intval().

P.S. Да кстати, в вашем РВ зачем модификатор i ? :)

  Ответить  
 
 автор: tokmak   (17.12.2008 в 23:41)   письмо автору
 
   для: BinLaden   (17.12.2008 в 22:41)
 

насчет комментария , перепутал извеняюсь /*

>> if (!is_int($_GET['id']) {
>Нельзя так проверять, так как $_GET['id'] никогда просто так не будет integer. Это может быть NULL, string или array.

BinLaden, Но согласитесь, лучше уж, хоть какая-та защита, чем вообще никакой. ;)

Ну можно и вот так (это для автора):

 if (!preg_match("/[0-9]/i",$_GET['id']))  {
    echo "ID параметр указан неверно!";
    exit();
}

  Ответить  
 
 автор: BinLaden   (17.12.2008 в 22:41)   письмо автору
 
   для: tokmak   (17.12.2008 в 22:32)
 

> "SELECT * FROM `article` WHERE `id_art` = 10//"
> и тут уже будет коментарий!

Однострочные комментарии в SQL -- "--"

> if (!is_int($_GET['id']) {
Нельзя так проверять, так как $_GET['id'] никогда просто так не будет integer. Это может быть NULL, string или array.

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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