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

Форум PHP

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

 

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

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

тема: Обработка переменных, получаемых от пользователя
 
 автор: HASHCODE   (03.08.2006 в 23:31)   письмо автору
 
 

Добрый день!

Меня интересует вопрос по обработке переменных, которые мы получаем от пользователя.
Вполне понятно, что в гостевой книге или на форуме жизненно необходимо обрабатывать сообщение.

Но, если мы получаем GET-переменную от пользователя. К примеру, переадресовываем его на страницу с id=3. Нужна ли здесь обработка GET-переменной?

В моем случае, я пишу систему администрирования, обратившись за идеей к книге "PHP5 Практика создания web-сайтов". В ней GET-переменные принимаются без обработки.

   
 
 автор: cyberface   (03.08.2006 в 23:46)   письмо автору
 
   для: HASHCODE   (03.08.2006 в 23:31)
 

Ты про безопасность?
Проверять надо все, лично я для числовых переменных, передающихся через GET или POST использую следующую функцию:

<?
function intprotect($what) {
    if((string)
$what<>(string)(int)$what) {
        die(
'Ахтунг, ф каментах хаксоры!!!');
   }
   else {
        return 
$what;
   }
}
?>

   
 
 автор: HASHCODE   (04.08.2006 в 06:37)   письмо автору
 
   для: cyberface   (03.08.2006 в 23:46)
 

Спасибо. Я именно про безопасность и спрашивал.

Т. е. при передаче через GET любого целого числа вполне достаточно попробовать перевести его в целое число из строки?

   
 
 автор: Thrasher   (04.08.2006 в 10:30)   письмо автору
 
   для: HASHCODE   (04.08.2006 в 06:37)
 

Совершенно верно.

   
 
 автор: Alex Kraft   (04.08.2006 в 00:15)   письмо автору
 
   для: HASHCODE   (03.08.2006 в 23:31)
 

Можно и так поступить:

$id = (($_GET['id']) || intval($id))?$_GET['id']:null;
Вместо null можно написать любое значение. Например, для постраничной навигации я когда-то сделал так:

$page = (($_GET['page']) || intval($page))?$_GET['page']:1;

   
 
 автор: WinT   (04.08.2006 в 01:46)
 
   для: Alex Kraft   (04.08.2006 в 00:15)
 

cyberface, а по-подробней можно, что именно эта функция осуществляет.

   
 
 автор: RV   (04.08.2006 в 03:13)   письмо автору
 
   для: WinT   (04.08.2006 в 01:46)
 

$id = (int) $_GET['id'])

   
Rambler's Top100
вверх

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