Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Функция import_request_variables()


Автор: Leklerk 22.8.2009, 11:40
Правильно ли я понимаю, что функция import_request_variables() предоставляет все преимущества включенной register_globals, не ухудшая при этом безопасность (как при register_globals=On)? Или у этой функции есть свои недостатки?

Автор: icewind 22.8.2009, 11:44
Цитата(Leklerk @  22.8.2009,  11:40 Найти цитируемый пост)
все преимущества включенной register_globals

это какие же?

Автор: Leklerk 22.8.2009, 11:48
Цитата
это какие же?


Ну, я имел в виду, так сказать, "быстроту и удобство"...  

Автор: Ипатьев 22.8.2009, 13:12
Нет, неправильно.
Недостатки те же, что и у регистер глобалс

Автор: nerezus 22.8.2009, 13:17
Цитата

Ну, я имел в виду, так сказать, "быстроту и удобство"...  
 Правильно: при отключении register_globals ты получаешь быстроту и удобство.

В туалет когда тебе хотелось и ты долго терпел, а потом сходил - помнишь чувство? Вот после перехода с register_lobals или удаления import_request_variables из кода почувствуешь то же самое: станет удобнее и быстрее писать.

Автор: SneG0K 22.8.2009, 15:40
Leklerk, если бы у гугля, одноклассников, контакта и прочей ерундени были включены регистер_глобалс.....

Автор: Leklerk 22.8.2009, 16:40
Цитата

Нет, неправильно.
Недостатки те же, что и у регистер глобалс 

Но ведь префикс для того и добавляется, чтобы исключить или во всяком случае значительно уменьшить вероятность конфликта имён...
И хакеру труднее подобрать...

Добавлено @ 16:44
Цитата

Leklerk, если бы у гугля, одноклассников, контакта и прочей ерундени были включены регистер_глобалс..... 

SneG0K, то что регистер_глобалс это плохо я и сам знаю...  smile Но я думал, что import_request_variables() лучше...  smile 

Автор: NewDima 22.8.2009, 17:31
Цитата(Leklerk @ 22.8.2009,  23:40)
SneG0K, то что регистер_глобалс это плохо я и сам знаю...  smile Но я думал, что import_request_variables() лучше...  smile

Если так думал, то значит были причины. Изложи?

Автор: SneG0K 22.8.2009, 17:42
Leklerk, понимаешь, в PHP есть несколько суперглобальных массивов. $_GET и $_POST в том числе. И появление этих массивов сделало супербольшой скачок в развитии безопасности PHP. Любой сайт с регистер_глобалс можно взломать за 5 минут.

Автор: nerezus 22.8.2009, 17:54
Цитата

Любой сайт с регистер_глобалс можно взломать за 5 минут.
 Спорим?)
Я напишу блог и ты попробуешь его взломать за пару дней.

Предлагай сумму спора.

Автор: NewDima 22.8.2009, 18:56
SneG0K, тоже не согласен, любой сайт можно защитить от взлома через register_globals, смотря какие руки)

Автор: SneG0K 22.8.2009, 18:56
Цитата(nerezus @  22.8.2009,  16:54 Найти цитируемый пост)
Спорим?)

А сорцы дашь посмотреть?

Автор: SneG0K 22.8.2009, 19:30
Да, ну ладно. Мне с детства внушали, что регистер-глобалс зло)

Автор: nerezus 22.8.2009, 19:42
Цитата

А сорцы дашь посмотреть?
 Могу и дать ) Что-то изменится?)

Цитата

Да, ну ладно. Мне с детства внушали, что регистер-глобалс зло)
 Признаешь свою неправоту?)

Автор: Leklerk 22.8.2009, 19:44
Цитата

Если так думал, то значит были причины. Изложи?

Лучше, потому что задаётся некий префикс и взломать будет намного труднее.

Автор: SneG0K 22.8.2009, 20:08
Цитата(nerezus @  22.8.2009,  18:42 Найти цитируемый пост)
Могу и дать ) Что-то изменится?)

Ну, понимаешь ли, все зависит от функционала.
Цитата(nerezus @  22.8.2009,  18:42 Найти цитируемый пост)
Признаешь свою неправоту?) 

 smile 

Автор: Ипатьев 22.8.2009, 21:54
Leklerk, а зачем вообще переменные из реквеста в глобальной области видимости? 
Сколько их, тех переменных, чтобы ради них огород городить? 
Можно привести практический пример?

Автор: nerezus 22.8.2009, 23:16
Цитата

Ну, понимаешь ли, все зависит от функционала.
 Не зависит. Они в глобальную область то вылезут, а там в проекте максимум строчек 10 будет.

Автор: IZ@TOP 23.8.2009, 01:17
Извлечение переменных в глобальную область видимости, на мой взгляд, является удобством сомнительным. И даже не смотря на привычку, стоит отучиться. В PHP хорошей практикой программирования является использование суперглобальных переменных, да и факт того, что register_globals (смотрим php.net/register_globals) является DEPRECATED и будет удален в 6-й версии - говорит о многом.
Функция import_request_variables возможно будет полезна при некоторых обстоятельствах, но в обычной ситуации ей пользоваться не рекомендую.

Автор: NewDima 23.8.2009, 05:02
Цитата(Leklerk @ 23.8.2009,  02:44)
взломать будет намного труднее.

Согласен, но зачем себя запутывать? Кто сказал, что ты не забудешь про этот префикс, или не поставишь такой же префикс у других переменных в скрипте? Видишь опасность, обходи ее заранее. Потому как "намного труднее" неконкурентоспособно на сегодня  smile 

Автор: Leklerk 23.8.2009, 16:56
Цитата

Сколько их, тех переменных, чтобы ради них огород городить? 
Можно привести практический пример?

Да это так, отвлеченные мысли... Нет у меня примеров... 

Автор: Ипатьев 23.8.2009, 19:28
Массив ведь удобнее в сто раз.
Если данных много, то их только массивом и перебирать. Не писать же все переменные по одной от руки?
Если мало - идентификатор новости, например - то несложно и руками принять.

И засорять себе программу неизвестными переменными совсем в итоге не обязательно. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)