NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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
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
9.1.2014 18:02
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

 
Odpovědět
9.1.2014 18:32
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
9.1.2014 18:34
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.

 
Odpovědět
14.1.2014 15:31
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) ...

 
Odpovědět
14.1.2014 15:53
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é.

 
Odpovědět
14.1.2014 19:40
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
14.1.2014 20:07
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ě?

 
Odpovědět
14.1.2014 20:48
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
14.1.2014 20:50
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é ...

 
Odpovědět
14.1.2014 21:13
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 159.