Autor Zpráva
Gandalf
Profil *
Dobrý den,

prosím o vyjádření v čem pro mě může nastat problém v používaní register_globals = On. Není pro mě ani tak problém skripty přepsat, ale spíše mě jen zajímá jaký to může mít vliv spíše na bezpečnost nežli funkčnost nebo zdali to nese ještě jiná rizika a problémy. Také mě zajímá váš názor, jestli je úplně profi u hostingu, kde hosuje přes tis. domén, aby toto nastevení vypnuli naprosto bez varování.

Díky....
BetaCam
Profil
Gandalf

Také mě zajímá váš názor, jestli je úplně profi u hostingu, kde hosuje přes tis. domén, aby toto nastevení vypnuli naprosto bez varování.

Vypnutí registe_globals je bezesporu správné. Ovšem vypnutí by mělo předcházet nějaké upozornění ze strany hostingové společnosti v dostatečném předstihu. Pokud bylo nastavení provedeno bez upozornění nepovažuji to za moc profi jednání.

Není pro mě ani tak problém skripty přepsat, ale spíše mě jen zajímá jaký to může mít vliv spíše na bezpečnost nežli funkčnost nebo zdali to nese ještě jiná rizika a problémy.

Dnes se na většině serverů z bezpečnostních důvodů používá nastavení registred_globals = off z toho vyplívá, že budeš li scripty dělat pro toto nastavení budeš mít menší problémi s přenosem mezi servery.

Jedno ze základních nebezpečí RG = on je podvržení hodnot. Například ty požedujes nějaký informace přes formulář ( včetně hidden polí ) když budeš mít RG = on můžu ti kompletně podvrhnout všechny data pomocí GET hodnot. Tedy například i hidden polí, které by v ideálním případě měli být neměnné.
Mastodont
Profil
jestli je úplně profi u hostingu, kde hosuje přes tis. domén, aby toto nastevení vypnuli naprosto bez varování

To rozhodně není profi hosting, ale nějací rejžáci.
Petyk
Profil
BetaCam
Jedno ze základních nebezpečí RG = on je podvržení hodnot. Například ty požedujes nějaký informace přes formulář ( včetně hidden polí ) když budeš mít RG = on můžu ti kompletně podvrhnout všechny data pomocí GET hodnot. Tedy například i hidden polí, které by v ideálním případě měli být neměnné.

o cem to mluvis? hidden podvrhnes uplne stejne lehce jako jakykoliv jiný prvek formulare (zvlast pokud jde o get), bezohledu na RG. prinos RG off je v tom, ze ti nikdo nemuze podstrcit neco do promennych, na ktere by vstup z venku nemel mit zadny vliv.
DoubleThink
Profil *
Správně napsaný script (tj. pracující jen s inicializovanými proměnnými a používající superglobální pole) direktiva register_globals nijak neovlivní.
BetaCam
Profil
Petyk
hidden podvrhnes uplne stejne lehce jako jakykoliv jiný prvek formulare (zvlast pokud jde o get), bezohledu na RG.

RG = ON
form posílanej jako POST směřijící na send.php kterej obsahuje i následující :

<input type="text" name="name">
<input type="hidden" name="id" value="1">

Zadáš url: www.example.com/send.php?name=abc&id=20 a díky RG = ON celej formulář obejdeš ( pokud tedy nepoužíváš superglobální pole ) s RG = OFF tohle neprojde.

prinos RG off je v tom, ze ti nikdo nemuze podstrcit neco do promennych, na ktere by vstup z venku nemel mit zadny vliv.

Pokud důsledně deklaruješ a inicializuješ proměnné tak ti je nikdo z venku nepodstrčí. Pokud se toho nedržíš je to jen a jen tvůj problém.
nightfish
Profil
Zadáš url: www.example.com/send.php?name=abc&id=20 a díky RG = ON celej formulář obejdeš ( pokud tedy nepoužíváš superglobální pole )
to závisí na nastavení variable_order v php.ini
výchozí pořadí je (v php 5.2.cosi) environment (proměnné prostředí), get, post, cookie, session
pořadí vyhodnocování zleva doprava, při kolizi se bere vždy novější hodnota (tzn. ta nejvíce vpravo)
takže v tomto případě by měly hodnoty formuláře posílaného přes POST přednost před proměnnými uvedenými v URL
BetaCam
Profil
nightfish

Ano sem si vědom pořadí, ale toto je jiná situace. :) Musíš se na to kouknout z jiného úhlu. Proč bych zadával nějaké hodnoty do formuláře, když bych je chtěl stejně zaměnit?? Celé odesílání formuláře přeskočím a půjdu přímo na www.example.com/send.php?name=abc&id=20 no a co se stane?? POST hodnoty neexistují, protože formulář nebyl vůbec odeslán, ale sou hodnoty v GET script si tedy hodnoty do proměnných $name a $id veme hodnoty z GET a regulérně se provede jako by se jednalo o hodnoty z POST. Takže se na pořadí mezi POST a GET můžu klidně vykašlat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0