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.

Host: <script> ...

– Some parameters contain data based on user input

REQUEST_URI, PATH_INFO, QUERY_STRING

– Can be fakes

Spoofed IP address via the use of anonymous proxies.

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 12

Validace číselných vstupních dat

Všechna vstupní data přicházejí do PHP jako řetězec 

(string).

Číselný vstup by neměl být používán jako s řetězec 

– nebezpečí chyby aplikace nebo napadení

Všechna číselná data by měla být validována:

// integer validation
if (!empty($_GET['id'])) {
        $id = (int) $_GET['id'];
} else
        $id = 0;              
// floating point number validation
if (!empty($_GET['price'])) {
        $price = (float) $_GET['price'];
} else
        $price = 0.0;

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 13

Validace řetězců

PHP poskytuje funkce ctype... pro validaci 

řetězců:

if (!ctype_alnum($_GET['login'])) {
        echo "Only A-Za-z0-9 are allowed.";
}
if (!ctype_alpha($_GET['captcha'])) {
        echo "Only A-Za-z are allowed.";
}
if (!ctype_xdigit($_GET['color'])) {
        echo "Only hexadecimal values are allowed";

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 14

Validace cesty

Použít uživatelský vstup pro určení cesty k 

souboru může být nebezpečné...

http://example.com/script.php?path=../../etc/passwd

<?php
$fp = fopen(“/home/dir/{$_GET[‘path’]}”, “r”);
?>

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 15

Validace cesty

PHP funkce basename() odstraní z řetězce cesty 

všechno kromě poslední části cesty (jména 

souboru):

<?php
$_GET[‘path’] = basename($_GET[‘path’]);

// only open a file if it exists.
if (file_exists(“/home/dir/{$_GET[‘path’]}”)) {

$fp = fopen(“/home/dir/{$_GET[‘path’]}”, “r”);

}
?>

department of computer 

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