úterý 15. května 2007

Abeceda AJAX bezpečnosti

Bezpečnost je něco, co máme uložené hluboko v paměti a občas to i oprášíme. V případě webových aplikací se zažilo jisté konvenční smyšlení o bezpečnosti, ale díky inovujícímu prvku v podobě AJAXu je potřeba tento konvenční přístup trochu přehodnotit.

AJAX totiž více odhaluje následující oblasti, které jsou v klasické webové aplikaci více zakryté serverem.

Exposure of Internal Details
Jestli se něčím AJAX aplikace liší v konceptu s web aplikací, pak je to mobilní kód. To jest kód, který cestuje ze serveru na klienta a tam slouží na interakci se serverem. Díky tomu dochází k vystavení určitých citlivých informací klientovi (jména metod, invocation context, návratové typy atd.).
Cross-Site Scripting
Manipulace s klientským stavem aplikace, díky přenesení velkého množství kódu na klienta se otevírají cesty pro manipulaci s jeho stavem. Nebo naopak díky znalosti stavu se otevírá infikovanému kódu možnost volat server s určitým kontextem.
Denial of Service
Přímé vystavení API pro jednotlivé AJAX volání vede k tomu, že se útočník může zaměřit na jednotlivé malé části a tím vyřadit celou službu. Díky neustále integraci služeb různých poskytovatelů do větších aplikací se těžko rozlišuje mezi útoky a běžným využitím.

Na JavaOne 2007 byla kromě mnoha jiných zajímavých prezentací i jedna, která mě velice zaujala a vztahovala se právě k bezpečnosti AJAX či Web 2.0 aplikací. Ptáte se na její jméno? You Are Hacked: AJAX security Essentials for Enterprise Java Technology Developers, vřele doporučuji prostudovat.