Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка на "взломность" [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Stierus Супермодератор
Отправлено: 27 Октября, 2011 - 11:30:27
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




DeepVarvar, $id = intval($id);
 
My status
 Top
OrmaJever Модератор
Отправлено: 27 Октября, 2011 - 12:00:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar пишет:
if ($_COOKIE['id']+0 > 0) // ...

напиши в куки aaa[aa] и будет беда Подмигивание

ещё не кто не отменял


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Октября, 2011 - 00:22:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




OrmaJever пишет:
напиши в куки aaa[aa] и будет беда
не будет беда. Будет число ноль.
Stierus пишет:
$id = intval($id);
надо в исходники заглянуть и посмотреть что там происходит.
 
 Top
Мелкий Супермодератор
Отправлено: 28 Октября, 2011 - 08:25:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar пишет:
не будет беда.

Будет. При том, fatal error. По крайней мере на версии 5.3.3


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Октября, 2011 - 08:41:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. $_COOKIE['test'] = 'aaa[aa]';
  2. if ($_COOKIE['test']+0 > 0) die("up");
  3. else die("down");
  4.  

Я чего-то не понимаю? (php 5.2)
 
 Top
Мелкий Супермодератор
Отправлено: 28 Октября, 2011 - 08:53:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar пишет:
Я чего-то не понимаю?

Не, это я на правах пророка неверно читаю.
PHP:
скопировать код в буфер обмена
  1. <?
  2. setcookie('i[ss]','value');
  3. var_dump($_COOKIE);
  4. var_dump($_COOKIE['i']+0);

На втором запуске будет Fatal error. А имя куки - так же можно передавать любое.
К слову, intval и (int) приводят к 1. Так что не забываем проверять и тип данных тоже.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Октября, 2011 - 09:03:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Я уж точно не собирался к массиву ноль прибавлять.
А именно показал в примере, что если к строке прибавить ноль, в итоге получится целое число.
Причем поведение "фичи" как у стандартных ф-ций.
 
 Top
Мелкий Супермодератор
Отправлено: 28 Октября, 2011 - 09:11:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar, как раз о том и речь, что мы не можем быть уверены, что в куку придёт строка - может быть и массив. Поэтому исходная проверка на is_numeric как раз уместна.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Октября, 2011 - 09:54:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Однако... сервер формирует среду окружения для скрипта.
Стандарт..
Ушел смотреть не вставил ли я где у себя такие "плюс-ноль" на внешние данные.
Вроде не было. Но проверить стоит.
(Добавление)
Нашел в движке всего два места с опасным моментом.
Фикс.
Живем дальше Закатив глазки
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB