[PHP] vypli mi register_globals, umi tu nekdo prosim php??

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Micro 24. 12. 2005 11:54

NA hostingu mi nastavili
register_globals=off
a me nejde php skript na editaci txt souboru pres web rozhraní.
viz http://rosalynda.wz.cz/demos/bbupravatext.php

uměl by to někde přepsat aby to fungovalo??? kdyz bylo register_globals=ON tak to fungovalo, ale ted to nejde.

Díky moc


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.
Alcatel 303 -> Nokia 5110 -> Nokia 3650 -> Siemens SX1 -> Nokia N73 + 1 GB karta
Micro
Junior

Odeslat příspěvekod map 24. 12. 2005 12:30

Přijímej hodnoty do skriptu pomocí

Kód: Vybrat vše
$necoPresGet = $_GET[ 'getPromenna' ];
$necoPresPost = $_POST[ 'postPromenna' ];
No one can hear when you're screaming in digital...
map
Junior
Uživatelský avatar

Odeslat příspěvekod AraxoN 24. 12. 2005 12:35

Môžeš skúsiť túto berličku: na začiatok PHP skriptu (alebo do nejakého konfigu, ktorý sa všade includuje) dopíš:
Kód: Vybrat vše
foreach ($_REQUEST as $_key=>$_val) {
    $$_key=$_val; // áno, pred _key má byť 2x znak $
}[/c

Na jednoduché veci by to mohlo stačiť, i keď je to ešte menej bezpečné než keby ten register_globals ostal zapnutý.
Podporujte baktérie - pre veľa ľudí je to jediná kultúra, ktorú majú.
AraxoN
Junior
Uživatelský avatar

Odeslat příspěvekod Micro 24. 12. 2005 12:48

AraxoN píše:Môžeš skúsiť túto berličku: na začiatok PHP skriptu (alebo do nejakého konfigu, ktorý sa všade includuje) dopíš:

Na jednoduché veci by to mohlo stačiť, i keď je to ešte menej bezpečné než keby ten register_globals ostal zapnutý.l/quote]


DÍKY MOC ! Opravdu to funguje! Přidal jsem to na začátek toho php souboru a jede to! díky moc :D :D
Alcatel 303 -> Nokia 5110 -> Nokia 3650 -> Siemens SX1 -> Nokia N73 + 1 GB karta
Micro
Junior

Odeslat příspěvekod AraxoN 24. 12. 2005 14:25

Micro píše:DÍKY MOC ! Opravdu to funguje! Přidal jsem to na začátek toho php souboru a jede to! díky moc :D :DD/quote]

nz... ale asi by som ťa mal nejak dôrazne upozorniť, že ak to chceš takto nechať, tak môžeš byť nepríjemne prekvapený budúcimi problémami - je možné tým podvrhnúť obsah inak bezpečných premenných (napríklad obsah session-u, remote_addr, a tak podobne)...
Ak to je len trochu možné, tak by si to mal preprogramovať tak ako to spomínal map a niečo vyššie...
Podporujte baktérie - pre veľa ľudí je to jediná kultúra, ktorú majú.
AraxoN
Junior
Uživatelský avatar

Odeslat příspěvekod BetWithLowe(smazano) 24. 12. 2005 14:31

ono to neni nadarmo již tuším v php4 defaultně vypnuté. Jé to vážně potenciální zdroj velkých problémů...
BetWithLowe(smazano)
Junior

Odeslat příspěvekod Lemur 24. 12. 2005 16:26

Ano, jak uz jsem jednou psal, register_globals je mec s dvojim ostrim, a to druhe je zatracene ostre. Zakazani register_globals je velmi vhodna vec a cast hostingu uz to ma defaultne, i kdyz porad je spousta tech, kteri je maji povoleno kvuli starym skriptum.

Ale jak uz psal BetWithLowe, staci aby nekdo zjistil, jak se jmenuji promenne ve skryptu, a uz muze napachat dost velke skody (napr. prihlasit se na stranky necim na zpusob http://www.stranky.cz/index.php?logged=true).

Proste staci si pamatovat, ze parametry se ctou z $_GET, $_POST nebo $_REQUEST (coz je GET+POST dohromady), session z $_SESION a serverve udaje z $_SERVER. Navic jeste pouzivam funkci, ktera i pri zapnutych register_globals odnastavi vsechny promenne mimo tech zacinajicich $_, takze vlastne vypne register_globals.
Lemur
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod #ikso 24. 12. 2005 18:03

Stacilo by na zaciatok scriptu dat extract($_REQUEST) ...
Raz bude svet lepsi.. :)
#ikso
Junior

Odeslat příspěvekod czbios 25. 12. 2005 10:46

jinak stačí taky přepsat tohle :
Kód: Vybrat vše
$jmeno
na napriklad
Kód: Vybrat vše
$_GET['jmeno']
takhle tak muzes kontrolovat jestli ti nikdo pres typ nepodstrcil data. post nebo cookies informace... tohle je treba u formularu neco odesles a pak to takhle proste zachazis
czbios
Junior
Uživatelský avatar

Odeslat příspěvekod tark 28. 12. 2005 18:21

Araxon: doporucuju neco lepsiho:

extract($_REQUEST);
tark
Junior
Uživatelský avatar

Odeslat příspěvekod roztok 2. 1. 2006 15:19

tady jeste nekdo nepouziva $_GET a $_POST atd...? :o)
roztok
Junior

Odeslat příspěvekod tark 2. 1. 2006 15:43

NE! :-(
tark
Junior
Uživatelský avatar

Odeslat příspěvekod Vebloud 2. 1. 2006 19:06

Tak to by měl začít.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod Micro 2. 1. 2006 20:53

tak jsem tedy dal místo tohodle:
Kód: Vybrat vše
foreach ($_REQUEST as $_key=>$_val) {
    $$_key=$_val; // áno, pred _key má byť 2x znak $
}[/c
začátek skriptu tohle:
Kód: Vybrat vše
extract($_REQUEST);

no a zatím to funguje. je to tak správně?
Alcatel 303 -> Nokia 5110 -> Nokia 3650 -> Siemens SX1 -> Nokia N73 + 1 GB karta
Micro
Junior

Odeslat příspěvekod roztok 2. 1. 2006 21:03

mno ale je to pekna "kvi kvi" :-/
roztok
Junior

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků