Bez ohledu na to, zda pojmenovávat AJAX aplikace "Web 2.0", či nikoliv, přinášení tyto aplikace nejen novou dimenzi uživatelského rozhraní a požitku, ale také nové bezpečnostní problémy.
reklama
Bez ohledu na to, zda pojmenovávat AJAX aplikace "Web 2.0", či nikoliv, přinášení tyto aplikace nejen novou dimenzi uživatelského rozhraní a požitku, ale také nové bezpečnostní problémy.
Princip práce AJAX aplikace je jednoduchý

Na co se však zapomíná je řádná kontrola vstupu a výstupu AJAX komunikace
Nejobvyklejší útoky a problémy
1. Cross-site scripting v AJAXu
Zaslání nebezpečného javascript kódu do prohlížeče, kde byl následně poslán. Typicky situace, kdy server vrací přímo javascript, který se poslése vykoná, v závislosti na vstupních parametrech.
2.XML poisoning
Technika, pomocí které se XML zaslané prohlížečem nahradí XML poškozeným či upraveným (obvykle výrazně věžší velikost, než je očekávána). Cílem je obvykle buď získání dat anebo DoS útok na server.
3. Kontrola vstupních dat pouze na klientovi
Podobný útok jako v předchozím případě. Častá chyba je kontrola vstupních dat pouze na klientovi. Obejití této kontroly je však snadné.
Data od uživatele (či raději všechna data) je nutné kotrolovat vždy a na každé úrovni, při každém přechodu mezi vrstvami (klient -> server -> BL -> databáze).
4. Skryté spuštění AJAX kódu
Při každé HTTP komunikaci mezi prohlížečem a serverem - včetně AJAX komunikace - se posílají cookie. Výhodou, a současně nevýhodou AJAXu je, že uživatel nevidí, kdy se AJAXu požadavek vykonává. Toho může útočník využít. Představte si situaci, kdy se přihlásíte k bance. Po loginu dostanete authentifikační session cookie. Pokud bez odlogování přejdete na stránku útočníka (třeba po kliku na odkaz v mailu), může útočník potichu pomocí AJAXu provést skryté volání serveru banky a získat citlivé informace či získat přístup k penězům
5. RSS/Atom injection
Většina klientských RSS čteček využívá pro zobrazování RSS kanálů vložený Internet Explorer nebo FireFox. Útok spočívá ve vložení nebezpečného javascriptu do RSS kanálu a jeho spuštění při čtení. Útočící kód obvykle jde po cookie anebo se pokusí instalovat nějaký SW.
6. WSDL scan
WSDL (Web Services Definition Language) je rozhraní pro Web services, plně popisující dostupné rozhraní. To jsou dosti citlivé informace pro získání představy o slabých místech aplikace či základ pro útok proti jednotlivým metodám. Pozor hlavně na zbytečná, stará a neplatná rozhraní, která tam zůstanou zapomenuta.
7. XPATH injection
XPath je jazyk pro dotazování v XML dokumentech a je všeobecně podporován. Principiálně by se nechal připodobnit SQL jazyku.
Pokud je na základě vstupu uživatele na server posílán XPath dotaz, pak je tento dotaz velmi ohrožena útokem. Změnou XPath je možné obejít authentifikaci či získat přístup ke skrytým datům.