Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 10. diel - Skladanie stránok v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Martin Suchodol
David Hartinger:9.1.2014 18:02

To je nesmysl, již se to tu řešilo výše.

Odpovedať
New kid back on the block with a R.I.P
Avatar
Odpovedá na David Hartinger
Martin Suchodol:9.1.2014 18:32

Já to používám pro načítání stránek do indexu kde si script bere GET proměnnou ověřuje zda soubor existuje možná to neni 100% ale jistý stupeň ochrany to poskytuje do doby než programátor udělá kiks který naruší logiku takové funkce a s doplněním o preg replace se stupeň ochrany zvýší toť můj názor

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Martin Suchodol
David Hartinger:9.1.2014 18:34

Je úplně jedno jestli soubor existuje nebo ne, ty nesmíš dovolit vložit jiný soubor než ten, který je k tomu určený. Ta tvoje "ochrana" ti dovolí vypsat .htpasswd, protože existuje.

Odpovedať
New kid back on the block with a R.I.P
Avatar
mapak
Člen
Avatar
mapak:14.1.2014 15:31

Ahoj! Maličko jsem si upravil první část kódu a chci se zeptat, jestli je to po bezpečnostní stránce ok.

$stranka = (isset($_GET['s­tranka']) ? filter_input(IN­PUT_GET,'stran­ka',FILTER_SA­NITIZE_SPECIAL_CHAR­S) : 'domu');

Netbeans na mě křičí, že k superglobální proměnné nemám přistupovat přímo, ale v případě funkce isset to nevadí, ne? Měl jsem tam původně isset(filter_in­put(INPUT_GET,'str­anka',FILTER_SA­NITIZE_SPECIAL_CHAR­S)), ale to mi přijde i z logiky věci jako hloupost. Nechci přece testovat něco, co už je přefiltrované, chci testovat existenci původního parametru.

Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovedá na mapak
Juraj Mlich:14.1.2014 15:53

Pokiaľ by $_GET nebolo nadstavené vôbec, tak by sa ti aj isset($_GET["e­xample"]) vyhodilo ako chyba (pokiaľ viem) ...

Avatar
mapak
Člen
Avatar
Odpovedá na Juraj Mlich
mapak:14.1.2014 19:40

Tomu úplně nerozumím. Funkce isset vrací TRUE pokud proměnná existuje a má jinou hodnotu než NULL. V ostatních případech vrací FALSE. Šlo mi pak o to, jestli PHP při tomhle testování proměnné přistupuje k jejímu obsahu a jestli to může být potenciálně nebezpečné.

Avatar
Kit
Tvůrce
Avatar
Odpovedá na mapak
Kit:14.1.2014 20:07

Pokud proměnná $_GET neexistuje, potom volání isset($_GET["example"]) způsobí běhovou chybu. Nemůžeš se odkazovat na položku neexistujícího pole.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mapak
Člen
Avatar
Odpovedá na Kit
mapak:14.1.2014 20:48

Omlouvám se, ale ani po přečtení dokumentace k proměnné $_GET nerozumím té chybě, o které mluvíte (Kit a Juraj). Vždyť ta podmínka "if (isset($_GET['s­tranka']))" je i v tomhle článku. Jak by to mělo být správně?

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na mapak
David Hartinger:14.1.2014 20:50

Protože to říkají špatně, jak je to v článku, tak je to správně. NetBeans má občas dost divné názory, ošetřuje se při výstupu, nikoli vstupy.

Odpovedať
New kid back on the block with a R.I.P
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovedá na David Hartinger
Juraj Mlich:14.1.2014 21:13

Máš pravdu ... Ale potom je to chyba v PHP, ako predsa môže testovať, či je nadstavená premenná v neexistujúcom poli? Z hľadiska funkčnosti je to dobré ale z hľadiska čistosti je to podľa mňa zlé ...

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 160.