Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> register_globals на платном хостинге 
:(
    Опции темы
mielnir
Дата 1.1.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 28.6.2006

Репутация: нет
Всего: нет



Здравствуйте. Будучи озадаченным выбором хостинга, стал просматривать наиболее популярные сервисы и обнаружил, что у многих register_globals = On ( masterhost.ru, majordomo.ru ). Разве это не есть дыра? Объясните, пожалуйста.
PM MAIL   Вверх
Wolf1994
Дата 1.1.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 7
Всего: 29



Нет, это не дыра.
1. Вы можете поставить эту переменную в "off", указав в .htaccess: php_value register_globals 0.
2. Можно заранее предопределять все переменные в нулевые значения.
3. Можно просто игнорировать этот параметр и брать значения из соответствующих массиво GET, POST...
PM MAIL WWW   Вверх
mielnir
Дата 1.1.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 28.6.2006

Репутация: нет
Всего: нет



Цитата(Wolf1994 @  1.1.2007,  13:06 Найти цитируемый пост)
1. Вы можете поставить эту переменную в "off", указав в .htaccess: php_value register_globals 0.
2. Можно заранее предопределять все переменные в нулевые значения.
3. Можно просто игнорировать этот параметр и брать значения из соответствующих массиво GET, POST... 

Тут совершенно согласен. При правильном программинге не сложно писать защищенный код. Но, просто все всегда говорят, что register_globals должна быть Off, а тут такие непонятки... Зачем создавать возмости ошибок, когда этого легко избежать?

PM MAIL   Вверх
Mal Hack
Дата 1.1.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



mielnir, ничто тебе не мешает установить register_globals в Off через .htaccess.

http://vingrad.ru/PHP-ART-002846
PM ICQ   Вверх
GZep
Дата 2.1.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Можно в начале любого скрипта подключать вот этот скрипт:
Код

<?php
function unregisterGlobals() {
if (ini_get('register_globals')) {
 $superglobals = array(
  $_SERVER,
  $_ENV,
  $_FILES,
  $_COOKIE,
  $_POST,
  $_GET
 );
 if (isset($_SESSION)) {
  array_unshift($superglobals, $_SESSION);
 }
 foreach ($superglobals as $superglobal) {
  foreach ($superglobal as $key => $value) {
   unset($GLOBALS[$key]);
  }
 }
 ini_set('register_globals', false);
 return true;
}
return false;
}
if (unregisterGlobals()) {
    echo "У вас был включен <b>register_globals</b>, но мы его вырубили :)";
} else {
    echo "Отлично, <b>register_globals</b> и так выключен";
}
?>

После этого весь дальнейший код будет думать, что register_globals отключен.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 2.1.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(GZep @  2.1.2007,  15:11 Найти цитируемый пост)
После этого весь дальнейший код будет думать, что register_globals отключен. 

А нельзя этот код на Си перевести и сделать модулем апача, перехватывающим запрос на скрипт?

Вот честно, не могу понять, зачем надо уши через клапан заднего давления чистить, когда все намного проще...
PM ICQ   Вверх
GZep
Дата 3.1.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(Mal Hack @  2.1.2007,  15:15 Найти цитируемый пост)
А нельзя этот код на Си перевести и сделать модулем апача

Так это невозможно! Регистрирует эти переменные модуль php. Апач только может передать интерпретатору флаги, где он может указать надо ли регистрировать эти переменные. Больше апач нмчего сделать не сможет, разве что не передавать глобальных переменных вообще smile  или совсем не задействовать интерпретатор. smile 

P.S. Мы, вообщето сдесь пытаемся найти вариант, который бы пошел даже на бесплатных хостингах, где есть самый убогий php smile

Добавлено @ 18:56 
Цитата(Mal Hack @  2.1.2007,  15:15 Найти цитируемый пост)
сделать модулем апача,

это и есть
Цитата(Mal Hack @  2.1.2007,  15:15 Найти цитируемый пост)
клапан заднего давления

 smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
GZep
Дата 6.1.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Вот, немного ту функцию улучшил...
Код

<?php
function unregisterGlobals() {
    if (!ini_get('register_globals'))
        return false;
    $superglobals = array(
        $_SERVER,
        $_ENV,
        $_FILES,
        $_COOKIE,
        $_POST,
        $_GET
    );
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal)
        foreach ($superglobal as $key => $value)
            unset($GLOBALS[$key]);
    ini_set('register_globals', false);
    return true;
}
if (unregisterGlobals())
    echo "У вас был включен <b>register_globals</b>, но мы его вырубили :)<br />\n";
else
    echo "Отлично, <b>register_globals</b> и так выключен<br />\n";
?>

Немного упростил и ускорил... smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 6.1.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(GZep @  3.1.2007,  18:54 Найти цитируемый пост)
P.S. Мы, вообщето сдесь пытаемся найти вариант, который бы пошел даже на бесплатных хостингах, где есть самый убогий php smile

Бредовая задача... Плевать на такие хостинги надо... И делать как положено.


Цитата(GZep @  3.1.2007,  18:54 Найти цитируемый пост)
это и есть

Нет.
PM ICQ   Вверх
GZep
Дата 6.1.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(Mal Hack @  6.1.2007,  16:52 Найти цитируемый пост)
И делать как положено.

На хороших хостингах он по умолчанию и так отключен или там (на хороших хостах) можно вот так делать, как ты писал уже:
Цитата(Mal Hack @  1.1.2007,  16:25 Найти цитируемый пост)
mielnir, ничто тебе не мешает установить register_globals в Off через .htaccess.
http://vingrad.ru/PHP-ART-002846 

Функция, которую я описал, работать будет практически везде и с ней практически не будет никаких проблем...


Цитата(Mal Hack @  2.1.2007,  15:15 Найти цитируемый пост)
модулем апача

Причем тут апач, разве вы не знаете, что переменные регистрирует пхп?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 6.1.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(GZep @  6.1.2007,  16:59 Найти цитируемый пост)
Функция, которую я описал, работать будет практически везде и с ней практически не будет никаких проблем...

ЭТО - ЛИШНЕЕ !!!!
PM ICQ   Вверх
GZep
Дата 6.1.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(Mal Hack @  6.1.2007,  17:04 Найти цитируемый пост)
ЭТО - ЛИШНЕЕ !!!! 

Оттого, что вы против бесплатных хостингов, на которых "убогий" PHP, люди не перестанут на них сидеть, а проблема остается. Я же не говорю всем поголовно использовать эту функцию, я просто говорю, что порой эта функция - единственное решения для многих людей. Естественно я согласен, что если есть такая возможность, то надо либо самому прописывать в php.ini эту настройку, либо ставить флаг в htaccess для вызова интерпретатора, чтобы он не регистрировал эти переменные, но все-еще много где это не разрешено делать...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
awers
Дата 6.1.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



ini_set и все... ну или .htaccess одно из двух точно работает на любом хосте.
и вообще для начала надо научиться писать ПРАВИЛЬНЫЙ код.

нафига юзать register_globals вообще непонятно.. темболее в случае с формами, это первый контур защиты от подмены Данных на $_GET ...
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 6.1.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



К тому же, в 6 PHP скорее всего все будет Off...
PM ICQ   Вверх
GZep
Дата 6.1.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(Mal Hack @  6.1.2007,  17:53 Найти цитируемый пост)
К тому же, в 6 PHP скорее всего все будет Off... 

Вообщето, совершенно точно регистрация глобальных переменных по-умолчанию будет выключена и это уже на 100%.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.