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.

– a. potvrzení dodatečným kliknutím
– b. potvrzení heslem (u důležitých akcí)

Anti-CSRF Token

– kód vygenerován u každého zobrazení formuláře
– kód se zobrazí u formuláře a zárověň uloží do SESSION
– při přijetí požadavku s daty formuláře porovnáme 

$_POST['token'] a $_SESSION['token']

– timeout může být nastaven pro platnost tokenu

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 27

SQL Injection

SQL injection se podobá XSS.

Nekontrolovaný uživatelský vstup je použit při vytváření 

SQL dotazu.

Pomocí vloženého dodatečného SQL dotazu do vstupu 

může útočník:

– smazat, vložit nebo měnit data
– zapříčinit DoS

Příklad:

http://example.com/db.php?id=0;DELETE%20FROM%20users

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 28

Prevence SQL injection: SQL escaping

PHP API pro databáze má často speciální funkce pro 

úpravu vstupu:

– MySQL

• mysql_escape_string()
• mysqli_real_escape_string()

– PostgreSQL

• pg_escape_string()
• pg_escape_bytea()

– SQLite

• sqlite_escape_string()

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 29

Escaping v praxi

// undo magic_quotes_gpc to avoid double escaping
if (get_magic_quotes_gpc()) {
  $_GET['name'] = stripslashes($_GET['name'];
  $_POST['binary'] = stripslashes($_GET['binary']);
}                                                       

$name = pg_escape_string($_GET['name']);             
$binary = pg_escape_bytea($_POST['binary']);

pg_query($db, "INSERT INTO tbl (name,image) 

VALUES('{$name}', '{$image}')");

department of computer 

science

and engineering

X36TW1 – Tvorba webových aplikací 1

Přednáška 9 / Strana 30

Nedostatky SQL escaping-u

Když do SQL dotazu vkládáme holý integer, 

escaping nefunguje

– žádné speciální znaky na úpravu

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