NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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 9 - Zabezpečení šablon

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
MArtin
Člen
Avatar
MArtin:27.10.2015 10:27

Akurat nechapem preco sa to osetruje pri vypise clanku a nie uz pri vkladani do DB. Usetri sa tym cas a zataz servera. Do DB vkladam len raz a vypisujem kazdu chvilu.

 
Odpovědět
27.10.2015 10:27
Avatar
Odpovídá na MArtin
Martin Konečný (pavelco1998):27.10.2015 10:32

Protože je lepší mít v databázi surová data, ať např. kvůli povolené délce, nebo když chceš s daty pracovat i jinak, než je jen vypsat (hledat podle hodnoty atd.).

Odpovědět
27.10.2015 10:32
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Šimon Rataj
Člen
Avatar
Šimon Rataj:2.6.2016 19:31

Nevím proč, ale htmlspecialchars() i htmlentities() mi vrací prázdný výsledek. Nevíte někdo proč?

 
Odpovědět
2.6.2016 19:31
Avatar
Odpovídá na Šimon Rataj
Matúš Petrofčík:2.6.2016 19:39

Nevím proč, ale nestartuje mi auto...

Musíš byť viac konkrétny, najlepšie je uviesť problematickú časť kódu. Skús to znovu :)

Odpovědět
2.6.2016 19:39
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Šimon Rataj
Člen
Avatar
Odpovídá na Matúš Petrofčík
Šimon Rataj:3.6.2016 16:13
<?=$title ?>

vypíše Úvod.

<?=htmlspecialchars($title) ?>

nevypíše nic.

 
Odpovědět
3.6.2016 16:13
Avatar
Odpovídá na Šimon Rataj
Matúš Petrofčík:3.6.2016 16:35

Podľa php.net:

If the input string contains an invalid code unit sequence within the given encoding an empty string will be returned, unless either the ENT_IGNORE or ENT_SUBSTITUTE flags are set.

Ak sa pozrieme na parametre funkcie:

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

Napadlo ma že nemáš nastavené defaultný charset (kodovanie) v php.ini a funkcia ini_get("defau­lt_charset") v 3. parametri vracia neplatný reťazec, a tým sa vyvoláva chyba ktorá zapríčiní vrátenie prázdneho reťazcu (táto chyba sa defaultne nezobrazí ako ostatné).

Skús použiť:

<?= htmlspecialchars($title, ENT_QUOTES, "UTF-8") ?>

Ak sa nevypíše nič, tak nvm. Určite máš súbory uložené ako UTF-8?

Editováno 3.6.2016 16:37
Odpovědět
3.6.2016 16:35
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Šimon Rataj
Člen
Avatar
Odpovídá na Matúš Petrofčík
Šimon Rataj:3.6.2016 16:45

Děkuji, už mi to funguje!

 
Odpovědět
3.6.2016 16:45
Avatar
Odpovídá na Šimon Rataj
Matúš Petrofčík:3.6.2016 16:58

Bolo to teda tým charsetom? Ak áno, dúfam že si si ho nastavil v php.ini aby sa ti takáto chybka nestala znovu :)

Odpovědět
3.6.2016 16:58
obsah kocky = r^2 ... a preto vlak drnká
Avatar
mkub
Tvůrce
Avatar
mkub:4.8.2016 7:44

pre tych, co ma minuskovali, treba osetrit tie udaje pri vstupe do databazy kvoli SQL injection a pri vystupe na stranku zase osetrovat vystup kvoli cross-site scriptingu

a ak sa ukladaju do databazy surove udaje bez overenia, resp. sa vyhladavaju udaje bez upravy vstupneho hladacieho retazca, sa lahko moze stat, ze databaza vygeneruje udaje, ktore nema, resp. urobi cinnost, co by nemala urobit
a PDO pri spravnom pouziti zabrani SQL injectingu, ale PDO (skratrka z PHP Database Object) vyzaduje objektove programovanie aspon pri pristupe k databaze

 
Odpovědět
4.8.2016 7:44
Avatar
Petr
Člen
Avatar
Petr:12.8.2018 15:22

Stačí lehce poupravit článek:

UPDATE `article` SET `text` = '<p>Vítejte na našem webu!</p>\r\n\r\n<p onmouseover="alert(`XSS, vole!`);">Tento web je postaven na <strong>jednoduchém MVC frameworku v PHP</strong>. Toto je úvodní článek, načtený z databáze.</p>' WHERE `article`.`article_id` = 1

A najednou...

Editováno 12.8.2018 15:24
Odpovědět
12.8.2018 15:22
Kdyby zakladatel nebyl arogantni k****, mohl byt ITNetwork fakt ceska oborova socialni sit.
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 27.