HALLOWEEN JE TADY: Získej 66 % extra kreditů zdarma při nákupu od 1199 kreditů s promo kódem NEBOJSEIT66. Zjisti více:
NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:

Diskuze – Lekce 11 - Skládání stránek v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Martin Suchodol
David Hartinger:9.1.2014 18:02

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

Odpovědět
New kid back on the block with a R.I.P
Avatar
Odpovídá 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
Odpovídá 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.

Odpovědět
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
Odpovídá 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
Odpovídá 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
Odpovídá 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.

Odpovědět
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mapak
Člen
Avatar
Odpovídá 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
Odpovídá 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.

Odpovědět
New kid back on the block with a R.I.P
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá 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é ...

Nejnovější komentáře jsou na konci poslední stránky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 160.