Autor Zpráva
Meldo
Profil
Ktory kod je z hladiska bezpečnosti lepší?

if (is_numeric($_POST['postupnost']) and strlen($_POST['postupnost'])>0) {

echo $_POST['postupnost'];
}

alebo
$postupnost = $_POST['postupnost'];
if (is_numeric($postupnost) and strlen($postupnost)>0) {
echo $postupnost;
}
Casero
Profil
Meldo
myslím, že je to uplně jedno, ale druhé řešení vypadá od oka bezpečnějc
djlj
Profil
Meldo
Oboje je úplně to samé.

ale druhé řešení vypadá od oka bezpečnějc
A na to jsi došel prosím jak?
Anonymní
Profil *
$postupnost je lokalna premenna, teda pokial neni na globalnom priestore, cize jej existencia sa viaze len k danej funcii, zato globalnu $_POST je mozne pouzit kdekolvek... ale kedze mas pripradenie a podmienku v rovnakom priestore a myslim ze mozeme pevne verit ze premenna $postupnost sa sama od seba nezmeni, kludne mozes pouzit i druhy zapis, je to vec dizajnu
Joker
Profil
Z hlediska bezpečnosti je to úplně stejné.
Mimochodem, nemá to náhodou dělat zhruba totéž jako tohle?

echo(intval($_POST["posloupnost"]));
Meldo
Profil
Vsetkym dakujem. Zdalo sa mi, ze som kdesi cital, ze prva moznost je bezpecnejsia. Ale to sa mi asi len zdalo.

Joker
Nie. Mam tam este dalsie podmienky, ale naco to sem vypisovat. O to teraz neslo.
Casero
Profil
A na to jsi došel prosím jak?
nevím...prostě mi to tak přišlo,... :-D
Anonymní
Profil *
hmm ale vhladom na rychlost by som doporucil prve riesenie kde sa vynecha kopirovanie premennej, ovsem casovy zisk je fakt zanedbatelny ;)
tiso
Profil
Vynechanie kopírovania premennej má efekt v rýchlosti, ale hlavne v šetrení pamäte - nie je nutné alokovať pamäť pre zbytočnú premennú... Nehovoriac o tom že viem s akou premennou pracujem ($_POST["posloupnost"] - to bude z nejakého formulára vs. $postupnost - čo to je za premennú?)
Čo sa týka tých podmienok, tak najlepšie to napísal Joker, chýba mi tam len kontrola na existenciu premennej if(isset($_POST["posloupnost"]))
mila
Profil
echo $_POST['posloupnost'] * 1; // :)
Anonymní
Profil *
echo $_POST['posloupnost'] * 1; // :)
to uz radsej
(int)$_POST['posloupnost'];
ovsem integer ma urcity rozsah a on kontroluje ci je to num... asi mu rozsah 2^30 nestaci, heh
potom by to slo kontrolovat ci pretypovat ako float...
llook
Profil
potom by to slo kontrolovat ci pretypovat ako float..
Pak by to bylo floor($_POST['posloupnost']);

Jinak je to úplně to samé. Výkonostní rozdíl je tak malý, že (prakticky) vlastně vůbec žádný není (zkus si změřit čas vykonání skriptu na milisekundy a zaokrouhlit třeba na 5 desetinných míst, rozdíl nepoznáš).
Joker
Profil
tiso
chýba mi tam len kontrola na existenciu premennej if(isset($_POST["posloupnost"]))
Pravdu máte... Moje výmluva je, že jsem ohlídání existence všech proměnných shledal tak náročné, že radši vypnu E_NOTICE ;)
Ale správně tedy pokud chci v proměnné číslo a chci jí pak dál používat, tak:
$posloupnost = isset($_POST["posloupnost"]) ? intval($_POST["posloupnost"]) : 0;

mila
No to už mi přijde čistší to s intval() co jsem psal já.
mila
Profil
Vím, že je to není pěkné, ale funguje i s realnými čísly..
OndrejCZE
Profil *
Si delate srandu, ze? Samozrejme ze prvni varianta. Abys to nekde nepopletl a a neprepsal si to co mas POSTnute nejakou jinou srandu. Ondra

PS: Treba na foru na builder.cz by te za toto skoro ukamenovali.
OndrejCZE
Profil *
I kdyz z hlediska bezpecnosti je to na stejno, to je pravda.
OndrejCZE
Profil *
Sorry za opakovani, predtim se to nezobrazilo. Ondra
gaminn
Profil *
OndrejCZE
Jen jestli si tu srandu neděláš ty z nás... Mně se zdá, že tomu příliš nerozumíš.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0