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

Форум PHP

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

 

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

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

тема: Явная инициализация переменных

Сообщения:  [1-3] 

 
 автор: cheops   (28.04.2006 в 00:27)   письмо автору
 
   для: Balamut182   (27.04.2006 в 15:44)
 

Нет, не settype(), а просто значением, например, имеется у вас код
<?php
if(авторизация)
{
  
$login 1;
}
if(
$ligin)
{
  
// Доступ к секретным сведениям
}
?>

Теперь набрав в строке бразуера http://www.site.ru/index.php?login=1 можно получить доступ к секретным сведениям минуя авторизацию, для того, чтобы предотворатить это необходимо явно инициализировать переменную $login
<?php
$login 
0;
if(
авторизация)
{
  
$login 1;
}
if(
$ligin)
{
  
// Доступ к секретным сведениям
}
?>

   
 
 автор: Киналь   (27.04.2006 в 22:55)   письмо автору
 
   для: Balamut182   (27.04.2006 в 15:44)
 

Вопрос не мне, но отвечу.
Имеются в виду переменные из массивов $_GET, $_POST, $_COOKIE, $_SESSION. Т.е. если у вас в форме был input name="login", не обращайтесь сразу к переменной $login, а напишите сначала $login=$_POST['login'].

   
 
 автор: Balamut182   (27.04.2006 в 15:44)   письмо автору
 
 

В одной из ваших книг прочел, что для безопасной работы сайта при REGISTER_GLOBALS=ON следует явно инициализировать переменные. Это при помощи функции settype()? Или я ошибаюсь?

   

Сообщения:  [1-3] 

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

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