Re: Predavani parametru v PHP

From: Jiri Matejka (matejka@runway.cz)
Date: 19. 11. 2002, 01:30 CET


> Tohle me docela zajima - musel jsem kvuli tomu IMHO celkem nesmyslne predelavat
> spoustu scriptu kdyz na serverech zvedli verze PHP. Upozornuju ze nejsem zadnej
> odbornik na zabezpeceni a programovanim se nezivim - sice celkem umim ale mam to
> jenom jako konicka.

> Takze muze mi nejaky expert vysvetlit proc a cim je bezpecnejsi kdyz se promenne
> (treba prave ty post-vars z formu) predaji v poli a ne "normalne"? Ja si je stejne
> hned na zacatku scriptu z toho pole vytahnu a pak s nima zas normalne pracuju jako
> driv. Chapu vyznam HTTP_POST_VARS kdybych treba potreboval zpracovat form kde bych
> neznal jmena poli (tedy promenne). Ale takhle mi jaksi unika smysl tehle obstrukce.
> Cim je bezpecnejsi if(!$HTTP_POST_VARS["jmeno"]) ... nez if(!$jmeno) ... ?? Mne
> osobne se to jevi jenom jako buzerace programatora a zbytecne prodluzovani kodu
> a navic zpomaleni behu scriptu. Proto jak jsem uz psal ty promenne vytahnu hned
> zkraje ($jmeno=$HTTP_POST_VARS["jmeno"]; atd.) a zbytek scriptu nechavam puvodni.
> Diky za pripadne trochu podrobnejsi vysvetleni. :)

to je na dlouhe povidani - dobre clanky jsou na root.cz a na krypta.cz

jen strucne - jde predevsim o to, aby ti nekdo nepodstrcil promenou z
jineho mista nez ji ocekavas - tahle chyba je nejvice pouzivana v
pripade open scriptu a aplikaci - jako priklad uvedu PHP Nuke ale
podobne chyby jsou i v jinych redakcnich a publikacnich systemech

v pripade kdyz znas zdrojaky, a najdes v nich urcitou chybu nebo
opomenuti, tak se to da aplikovat na spouste stranek, ale i u jinych
systemu se da najit chyba, kdyz chvili sledujes, jak system funguje

takze kdyz je nekde ve scriptu overeni uzivatele
"WHERE UserName=". $user_name ." AND UserPass=". $user_pass ."...

tak staci z URL poslat
server.cz/stranka.php?user_name=bezjmena%20or%201%3D1&user_pass=
bezhesla%20or%201%3D1

a ono %20or%201%3D1 je jen pridane OR 1=1 coz podminku vzdy splni

!!! ale jde o to jak je ve scriptu - kolikrat je nutno napsat
slozitejsi zapis - tohle jsem napsal jen tak z ruky

nebo take, kdyz mas nekde mozno editovat nejake clanky dle tveho ID
tak je moznost kouknout do vstupniho formulare a prepsat to do URL
a pridat ke svemu $user_id ono 1=1 tak to vypise veskere clanky
a ne jen tvoje

Jirka



This archive was generated by hypermail 2.1.2 : 19. 11. 2002, 01:31 CET