Отмена автоматического создания переменных

Жиган

Новичок
Пацаны, скажите как отменить автоматическое создание переменных по отправленным к странице именам полей.

В настройке php сделал

PHP:
_register_globals = Off
но все равно можно создать переменную через браузерную строку дописав, например:

PHP:
?trol=sosnickii
к ссылке.
 

zerkms

TDD infected
Команда форума
А что за знак подчёркивания в начале?

phpinfo(); и в нём ещё посмотри значение register_globals
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Код, где создается переменная, в студию...
 

Жиган

Новичок
PHP:
<h1>Form Reader</h1>

<?

print <<<HERE
<table border ="1">
<tr>
   <th>Field</th>
   <th>Value</th>
</tr>
HERE;

foreach ($_REQUEST as $field => $value){
 print <<<HERE
   <tr>
      <td>$field</td>
      <td>$value</td>
   </tr>
HERE;
}
print "</table>";

?>
Вот эта форма принимает переменные. Почему она принимает переменные, прописанные в адресную строку в виде:

PHP:
trol.php?peremennaya=zna4enie
?
 

zerkms

TDD infected
Команда форума
Потому что ты сам их выбираешь из массива $_REQUEST
 

Жиган

Новичок
Потому что ты сам их выбираешь из массива $_REQUEST
Т.е. автоматического создания переменных не происходит? А в чем проблема автоматического создания?
Перезапись переменных подставленными и возможность взлома таким образом?
 

craz

Нестандартное звание
ну к примеру ты делаешь

<?
if($admin_hash=="198169786176352635fdlkjhaskjgdha")
?>
а тебе в скрипт прям заправляют /?admin_hash=198169786176352635fdlkjhaskjgdha
зачастую когда стоит у тебя получение переменных из GET POST включено то не надо даже хеша.
 

Жиган

Новичок
а тебе в скрипт прям заправляют /?admin_hash=198169786176352635fdlkjhaskjgdha
Заправляют в адресную строку браузера?

зачастую когда стоит у тебя получение переменных из GET POST включено то не надо даже хеша.
Поподробнее можно про это? Что ты имел ввиду?
 

Жиган

Новичок
PHP:
<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE получена из достоверного источника.
    // Для полной уверенности необходимо проверить ее значение.

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("[email protected]", "Обнаружена попытка взлома", $_SERVER['REMOTE_ADDR']);
   echo "Обнаружено нарушение безопасности, администратор уведомлен.";
   exit;

} else {

   // MAGIC_COOKIE в данных запроса не присутствует
}
?>
Насколько я понимаю тут проверяется источник поступления переменной MAGIC COOKIE? Т.е. если она пришла из массива cookie то норм, а если из get или post то начинается тревога?

И еще хочу спросить данные из форм обязательно или по методу post или по методу get поступают? Или не указав метод в форме они еще каким-то образом передаются?
 

craz

Нестандартное звание
Сверху