Въпрос за Register Globals в PHP

scoobydoo

Know you can!
Здравейте.
Чета, че трябва да е изключено на всяка цена. Обаче като гледам в HostGator е включено.
Виждам, че има разни там методи за изключването му.
Интересува ме обаче, ако го изключа, има ли шанс някой код да не работи? Реално какво ще се промени? Четох, но пак не ми е ясно.
Трябва ли да се пренаписва код след изключването?
Мерси.
 
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

Спецовете по РНР сигурност съветват да бъде изключено, но когато го направих на моя сървър, се оказа, че някои неща в определени сайтове спряха и са наложи да правя емулация на командата само за тези сайтове. Така че проверката най-добре показва.
 
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

Хмм... То ако ще проверявам всички сайтове и всичките им екстри дали работят, не ми харесва 😀. Някой не знае ли какво реално се променя? Аз мислех, че ще е нещо, което и без това не се ползва. Все пак вече по подразбиране е изключено това нещо в PHP. Не би трябвало да е нужно.
 
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

От php5 насам е изключено по подразбиране и НЕ СЕ препоръчва за ползване. Но все още има програмисти фенове на php4 и ранните наченки на ООП в PHP в началните версии на 5-цата, които отказват да пишат адекватен код и го ползват. За съжаление какво ще спре да работи можеш да знаеш само ако си писал кода или ако си загубиш времето да правиш схемата опит-грешка.
 
Re: Въпрос за Register Globals в PHP

Ако кодът ти е писан за PHP5, вероятно няма да ти се налага да е включено. Това се използваше в ранните версии на PHP4, а такива кодове аз не съм виждал от години.

Разликата е, че правилният начин е всяка променлива да си я вземаш с $_GET масива, а не всяка параметризация да създава променлива. Така ако някой реши, да вкара променлива отвън, която в приложението не се използва като параметър, не може да навреди.

Иначе ако е включено Register Globals, се отварят много дупки в сигурността. Примерно някоя променлива се взема от база данни и ако е взета успешно, се вкарва някъде другаде. Е да, но ако е включено аз мога с параметър да създам тази променлива с каквато си искам стойност и да правя каквото си искам.
 
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

Бих добавил, че ако сайтовете ти ползват по-модерни фреймуоркове, не би трябвало да имаш проблеми. Почти всички правят проверка дали е включен и го изключват заедно с magic_quotes ...
Ако имаш код писан на чисто PHP, къстъм цмс и т.н. ... това би бил най-вероятния заподозрян за проблеми.
 
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

До колкото разбирам, това нещо позволява да се декларират променливи през GET, POST и т.н и ако ние си ги нямаме предварително декларирани, така могат да ни ги променят. И за да го ползва това някакъв код, то трябва човека да не е писал GET нещо си ами да е разчитал директно на URL-а примерно. Аз едва ли съм го ползвал защото не знаех, че това е възможно 🙂.
Благодаря за отговорите. Ще пробвам да го изключа, но все пак за всеки случай, ще трябва да тествам доста неща дали работят.

EDIT: Не мога да разбера защо в HostGator е пуснато това. Добре че поне в SuperHosting е спряно.
 
Последно редактирано:
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

Проблемът е по-скоро не че не си знаел да го ползваш, а че не си знаел че е съществува. Чисто и просто става въпрос, че ако не си си инициализирал променливите ползвани в скриптовете имаш вероятни възможности за дупки при register globals on.
 
За: Въпрос за Register Globals в PHP

За: Въпрос за Register Globals в PHP

EDIT: Не мога да разбера защо в HostGator е пуснато това. Добре че поне в SuperHosting е спряно.

По две причини:
1. Има огромно количество сайтове/сорс написани за PHP3/4, които са писани за register_globals on
2. Има още по-голямо количество потребители/мазохисти, който ползват нещата от т1 и оревават де що могат, че лайната им не работят на сървърите на хотинг доставчика.
Тия същите потребители са такива мърди, че не знаят как се активира register_globals и това кара доставчиците да го активират по подразбиране.

При хостгатор най-вероятно си на някой стар сървър със стари клиенти - на новите мисля, че не пускат глобалните.
 

Back
Горе