Autor | Zpráva | ||
---|---|---|---|
překvapen Profil * |
#1 · Zasláno: 27. 4. 2013, 12:50:38 · Upravil/a: překvapen
Dobrý den. Zrovna řeším ve scriptech důkladnou ochranu proti SQL injektoru a chtěl jsem si sám databázi heknout, ale vůbec se mi to nedaří, čili jsem vyechoval výstup a zjistil jsem že se mi před každou uvozovkou ' udělá sám ochraný snak \ ... nemá někdo s tím zkušenost? Protože já jsem žádný mysql_real_escape_string nezapínal totiž. Nebo přesněji nezapínal jsem ho v indexu ani na stránce na které jsem ten hack zkusil. zkoušel jsem si tu stránku heknou i mimo index a ve výstupu mám stále
a\'; drop table chat; -- i když jsem zadal a'; drop table chat; -- mohl by mi to prosím někdo vysvětlit nějak nebo něco? Děkji. Jo ještě jsem chtěl dodat že nepoužívám žádný framework |
||
Kajman Profil |
#2 · Zasláno: 27. 4. 2013, 13:00:53
Zkontrolujte si nastavení magic quotes.
|
||
Camo Profil |
A vypneš si to v .htaccess takto: http://www.abeautifulsite.net/blog/2007/10/disabling-magic-quotes-gpc-using-an-htaccess-file/
|
||
překvapen Profil * |
#4 · Zasláno: 27. 4. 2013, 13:18:26 · Upravil/a: překvapen
Aha děkuji to bude ono. Takže z toho plyně že v php před verzí 5.3.0 php automaticky nastavuje tuhle ochranu. Já mám verzi 5.2.6. Z toho tedy plyne že to mám v tom případě vše ochráněné? Protože to se mi logicky nezná když se od toho u verze 5.3 už ustoupilo. Znamená to že bych měl přejít na novější verzi a ochránit každý vstup a nebo to mohu nechat takto?
* Protože to se mi logicky nezdá Camo : no ono to právě dělá to co chci. Já to nechci vypínat... spíše mě zajímá jestli to stačí jako ochrana. |
||
Camo Profil |
#5 · Zasláno: 27. 4. 2013, 17:59:53
překvapen:
Ako ochrana by to stačilo, ale robí to problémy inde. Takže normálne sa to vypína a escapuje sa len to čo ide do databázy a urob to tak aj ty.... |
||
Joker Profil |
#6 · Zasláno: 27. 4. 2013, 20:43:30
překvapen:
„Takže z toho plyně že v php před verzí 5.3.0 php automaticky nastavuje tuhle ochranu.“ Na to automaticky nastavuje bych rozhodně nesázel. Závisí to na nastavení magic_quotes_gpc. I když podle manuálu je výchozí hodnota zapnuto, nejsem si jistý, jestli to tak u všech verzí PHP doopravdy je. Každopádně v praktických instalacích PHP třeba na webhostingu a tak (když teda půjde o verzi PHP která to ještě umí) bych spíš očekával, že budou magic_quotes vypnuté. „Já to nechci vypínat... spíše mě zajímá jestli to stačí jako ochrana.“ Nepoužívejte magic_quotes. Můj osobní názor je, že magic_quotes jsou ta největší pitomost, jaká se v PHP za jeho historii objevila. Proč nepoužívat magic_quotes: 1. Už skoro před čtyřmi lety (od PHP 5.3) byla ta funkčnost oficiálně označená jako zastaralá (což znamená nepoužívat v novém kódu) a z PHP 5.4 byla úplně odstraněná. 2. I ve starších verzích fungování závisí na nastavení serveru, takže „správně“ by skript neměl spoléhat na zapnutí magic_quotes, ale kontrolovat nastavení serveru a zařídit se podle něj. Tedy ve výsledku jediný efekt magic_quotes je nutnost přidat další kód navíc. 3. Zapnuté magic_quotes escapují všechna data od uživatele, i taková, která escapovat nechceme. To pak znamená nutnost „odescapovat“ to, co nemá být escapované. 4. A navíc magic_quotes data escapují funkcí addslashes, která neudělá dokonalé escapování snad pro žádné použití. Například escapování pro MySQL databázi dělá funkce mysql_real_escape_string. Použití addslashes je sice „dostačující“, ale ne ideální. |
||
Časová prodleva: 11 let
|
0