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 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
Petr
Člen
Avatar
Petr:12.8.2018 15:29

...

Odpovědět
12.8.2018 15:29
Kdyby zakladatel nebyl arogantni k****, mohl byt ITNetwork fakt ceska oborova socialni sit.
Avatar
Petr
Člen
Avatar
Petr:12.8.2018 16:42

Řešení leží zde: http://htmlpurifier.org/

Odpovědět
12.8.2018 16:42
Kdyby zakladatel nebyl arogantni k****, mohl byt ITNetwork fakt ceska oborova socialni sit.
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Otvorený Zdroj:19.5.2019 23:32
// ($x = null) hodnota atributu $x  prednastavena ako chýbajúca alebo neexistuje

private function osetri($x = null)
        {
// ak hodnota atributu neexistuje vráti null- hodnota neexistuje nevrati nic
                if (!isset($x))
                        return null;

// ak hodnota atribútu je reťazec převede speciální znaky v textu na HTML entity, ENT_QUOTES - Převede uvozovky i apostrofy.
elseif (is_string($x))
                        return htmlspecialchars($x, ENT_QUOTES);


// ak je atribut pole
elseif (is_array($x))
                {           //Cyklus prebehne polom a osetri kazdu hodnotu
                        foreach($x as $k => $v)
                        {
                                $x[$k] = $this->osetri($v);
                        }
// zaroven vrati hodnotu
                        return $x;
                }
//ak neprebehne ziadna moznost vrati hodnotu $x
                else
                        return $x;
        }

Vie mi to niekto lepsie okomentovať? myslim celu metodu private function osetri($x = null)

Odpovědět
19.5.2019 23:32
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Odpovídá na Otvorený Zdroj
administrator222:16.4.2020 0:48

funkce je velice jednoduchá, má za úkol pouze ošetřit předanou proměnou $x typu string pomocí htmlspecialchars().
Což znamená převod speciálních znaků na html entity.
Pro podrobnější info:
https://www.php.net/…ialchars.php
https://www.itnetwork.cz/…y-php-manual

Celá funkce obsahuje tři podmínky:

  1. test zda je proměnná typu null vrátí to co jsi jí dal.
  2. test zda je proměnná typu string ("text") v tom případě provede ošetření pomocí htmlspecialchars()
  3. test zda je proměnná typu array(), pomocí foreach() prochází pole a rekurzivně volá sama sebe, jako hodnotu $x předává hodnotu získanou z pole a nahradí ji tím co se jí vrátí. Ošetří i více rozměrné pole právě díky rekurzi.
  4. pokud není splněna žádná z předchozích podmínek funkce vrátí to co dostala
 
Odpovědět
16.4.2020 0:48
Avatar
Jaroslav Kuthan:6.1.2022 10:15

"Náš systém je nyní zabezpečený proti útoku XSS..."

To ale přeci není, pokud celý obsah článku je neošetřený.

 
Odpovědět
6.1.2022 10:15
Avatar
Jan Štěch
Člen
Avatar
Jan Štěch:5.8.2022 19:21

Tak mě napadá, že ošetřování všech proměnných pro pohled a jejich následné zduplikování kvůli pár možným výjimkám, kde některou z nich ošetřenou nechceme může být dost náročné na paměť i výkon. Nebylo by lepší ponechat si pouze ošetřené pole a v případě nějaké té výjimky, jako třeba obsahu článku použít prostě <?= htmlspecialchars_decode($obsah, ENT_QUOTES) ?>?

 
Odpovědět
5.8.2022 19:21
Avatar
Jan Štěch
Člen
Avatar
Odpovídá na Jaroslav Kuthan
Jan Štěch:5.8.2022 19:22

Ono se asi předpokládá, že ty články budou moci přidávat jenom administrátoři, nebo že budou procházet nějakým systémem schvalování, podobně jako tady na ITnetwork. 🙂
Ale jinak v podstatě ano, stačí jedna ovlivnitelná a neošetřená proměnná a XSS může nastat.

 
Odpovědět
5.8.2022 19:22
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 7 zpráv z 27.