Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Bezpečnost aplikací

PDF
Stáhnout kompletní materiál zdarma (320.07 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 16

Validace cesty

Lepší je však ukrýt názvy souborů a poskytnout 

uživateli jenom seznam kódů

// make white-list of templates
$tmpl = array();
foreach(glob("templates/*.tmpl") as $v) {
        $tmpl[md5($v)] = $v;

if (isset($tmpl[$_GET['path']]))
        $fp = fopen($tmpl[$_GET['path']], "r");

http://example.com/script.php?path=57fb06d7...

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 17

magic_quotes_gpc

PHP má zabudováno automatické ošetření speciálních 

znaků ve vstupu ( ‘, “, \, \0 (NULL) )

Nevýhody

– Zpomaluje zpracování vstupu.

• Ošetření číselných vstupů je možné dělat lépe přetypovaním.
• Vyžaduje 2 násobek paměti pro vstupní data.

– Na serveru může být vypnuté.
– Velice obecné řešení (někdy musíme ošetřit i jiné 

znaky).

Je dobré mít funkci, která, jestli je magic_quotes zapnuté, 

zruší lomítka a pak vlastní funkci pro ošetření vstupu

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 18

Magic Quotes

if (get_magic_quotes_gpc()) { // check magic_quotes_gpc state
        function strip_quotes(&$var) {
                if (is_array($var)
                        array_walk($var, 'strip_quotes');
                else
                        $var = stripslashes($var);
        }

 // Handle GPC

        foreach (array('GET','POST','COOKIE') as $v)  
                if (!empty(${"_".$v}))  
                        array_walk(${"_".$v}, 'strip_quotes');

// Original file names may contain escaped data as well

        if (!empty($_FILES))
                foreach ($_FILES as $k => $v) {
                  $_FILES[$k]['name'] = stripslashes($v['name']);
}

Témata, do kterých materiál patří