EN | CS | Přihlásit | Registrovat

Dokonalé zabezpečení webových aplikací

Co chvíli je hlášena bezpečnostní díra na dalším významném webu nebo je díry zneužito. To je nepříjemné. Pokud vám záleží na zabezpečení vašich webových aplikací, je Nette Framework zcela jistě tou nejlepší volbou.

Cross-site scripting (XSS)

Cross-site scripting je metoda narušení webových stránek zneužívající neošetřených výstupů. Útočník pak dokáže do stránky podstrčit svůj vlastní kód a tím může stránku pozměnit nebo dokonce získat citlivé údaje o návštěvnících. Proti XSS se lze bránit jen důsledným a korektním ošetřením všech řetězců. Přitom stačí, aby váš kodér jen jednou jedinkrát toto opomenul, a celý web může být rázem kompromitován.

Nette Framework přichází s revoluční technologií Context-aware escaping, která vás provždy zbaví rizika cross-site scriptingu. Všechny výstupy totiž ošetřuje automaticky a tak se nemůže stát, že by kodér na něco zapomněl. Příklad? Kodér vytvoří tuto šablonu:

<p onclick="alert({$message})">{$message}</p>

<script>
document.title = {$message};
</script>

Zápis {$message} znamená vypsání proměnné. V jiných frameworcích je nutné každé vypsání explicitně ošetřit a dokonce na každém místě jinak. V Nette Framework není potřeba ošetřovat nic, vše se udělá automaticky, správně a důsledně. Pokud dosadíme do proměnné $message = 'Šířka 1/2"', framework vygeneruje HTML kód:

<p onclick="alert(&quot;Šířka 1\/2\&quot;&quot;)">Šířka 1/2&quot;</p>

<script>
document.title = "Šířka 1\/2\"";
</script>

Cross-site request forgery (CSRF)

Cross-site request forgery je útok spočívající v tom, že přimějeme uživatele navštívit stránku, která skrytě vykoná útok na webovou aplikaci, kde je uživatel zrovna přihlášen. Lze tak například pozměnit nebo smazat článek, aniž by si toho uživatel všiml. Proti útoku se lze bránit generováním a ověřováním autorizačního tokenu.

Nette Framework obranu formulářů před útokem cross-site request forgery zjednodušuje tak, že snadnější to být nemůže. Stačí totiž jediný příkaz:

$form->addProtection();

a formulář je ochráněn!

URL attack, control codes, invalid UTF-8

Různé pojmy související se snahou útočníka podstrčit vaší webové aplikaci škodlivý vstup. Následky mohou být velmi různorodé, od poškození XML výstupů (např. nefunkční RSS kanály) přes získání citlivých informací z databáze nebo hesel. Obranou je důsledné ošetřování všech vstupů na úrovni jednotlivých bajtů. A ruku na srdce, kdo z vás to dělá a který framework to dělá?

Nette Framework to dělá a navíc zcela automaticky. Nemusíte nastavovat vůbec nic a všechny vstupy budou ošetřené.

Session hijacking, session stealing, session fixation

Se správou session je spojeno hned několik typů útoků. Útočník buď zcizí anebo podstrčí uživateli své session ID a díky tomu získá přístup do webové aplikace, aniž by znal heslo uživatele. Poté může v aplikaci provádět cokoliv, aniž by o tom uživatel věděl. Obrana spočívá ve správném nakonfigurování serveru a PHP.

Nette Framework nakonfiguruje PHP zcela automaticky. Programátor tak nemusí přemýšlet, kterak session správně zabezpečit a může se plně soustředit na tvorbu aplikace.