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.

http://example.com/db.php?id=0;DELETE%20FROM%20users
<?php
$id = sqlite_escape_string($_GET['id']);
// $id is still 0;DELETE FROM users
                                        
sqlite_query($db, 

"SELECT * FROM users WHERE id={$id}");

// Bye Bye user data...
?>

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 31

Prevence SQL injection: Prepared Statements

Prepared statements slouží k zabezpečení a 

optimalizaci vykonávaných dotazů.

SQL “zkompiluje” dotaz a pak při každém vykonání 

jenom nahrazuje hodnoty přeměnných.

– Vyšší výkon – jedno kompilování na dotaz.
– Vyšší bezpečnost, vložená data nejsou považována za 

další dotaz.

– Podpora v hlavních RDBMS:

• MySQL od verze 4.1.

• SQLite nemá podporu.

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 32

Použití Prepared Statements

<?php
$data = "Here is some text to index";

pg_query($db, "PREPARE my_stmt (text) AS 

INSERT INTO search_idx (word) VALUES($1)");

foreach (explode(" ", $data) as $word) {
        // no is escaping needed
        pg_query($db, "EXECUTE my_stmt({$word})");

  
// de-allocte the prepared statement 
pg_query($sb, "DEALLOCATE my_stmt");
?>

 Unless explicitly removed, prepared statements “stay alive” 

between persistent connections.

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 33

Vzdálené spuštění kódu

Remote code execution, Remote file inclusion...

Útočník spustí prostřednictvím napadené webové aplikace 

vlastní kód:

– načítaním vlastního souboru (lokálního, nebo ze 

vzdáleného serveru)

– spuštěním eval() na nekontrolovaném vstupu

Hrozí převzetí kompletní kontroly nad napadenou aplikací 

nebo celým serverem.

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 34

Vzdálené spuštění kódu: ochrana

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