Hogy ez mekkora kamu... a példaszkript (XHR) pl. nem is működik, mert el*ták. Ha jó is lenne, sem sebezhetőséget, hanem normál működést produkálna. A többi kettőre kiakadt az IE7-em.
A prezi azonban elgondolkodtató. Persze, kisarkítja a problémákat (mintha átutalni úgy lehetne, hogy küldesz egy GET requestet a banknak, feltételezvén hogy nem léptél ki, meg ugye a JSON adatokat sem eval()-lal olvassuk be). A legtöbb "remek" analízis arról szól, hogy hogy lehet meghackelni a keretrendszert miután betörtél mondjuk XSS-el. Mond azonban néhány jótanácsot, amit én fel is vennék a "best practices" listámba:
- használj titkosított session tokent a fontos kérésekbe
- ne engedd a programnak, hogy állapotot módosítson GET request-re
- quote-olj mindent
- ne bízz mások által írt kódban (ellenőrzés, ellenőrzés, ellenőrzés)
Mondjuk én ezt a titkosított session tokent kiegészíteném azzal, hogy jó ötlet a CAPTCHA-szerű védelem rejtett formában is, azaz a form-ba kerüljön bele egy véletlenszám, és csak akkor fogadja el a submit-ot a szerver, ha a session-ben tárolt szám megegyezik a visszakapott értékkel. Persze ez elég gyengécske megoldás, és csak ideig-óráig jó (amíg rá nem jönnek a POST spam-elők, hogy előtte egy GET-tel kérjenek tokent).
Hoax
A prezi azonban elgondolkodtató. Persze, kisarkítja a problémákat (mintha átutalni úgy lehetne, hogy küldesz egy GET requestet a banknak, feltételezvén hogy nem léptél ki, meg ugye a JSON adatokat sem eval()-lal olvassuk be). A legtöbb "remek" analízis arról szól, hogy hogy lehet meghackelni a keretrendszert miután betörtél mondjuk XSS-el. Mond azonban néhány jótanácsot, amit én fel is vennék a "best practices" listámba:
- használj titkosított session tokent a fontos kérésekbe
- ne engedd a programnak, hogy állapotot módosítson GET request-re
- quote-olj mindent
- ne bízz mások által írt kódban (ellenőrzés, ellenőrzés, ellenőrzés)
Mondjuk én ezt a titkosított session tokent kiegészíteném azzal, hogy jó ötlet a CAPTCHA-szerű védelem rejtett formában is, azaz a form-ba kerüljön bele egy véletlenszám, és csak akkor fogadja el a submit-ot a szerver, ha a session-ben tárolt szám megegyezik a visszakapott értékkel. Persze ez elég gyengécske megoldás, és csak ideig-óráig jó (amíg rá nem jönnek a POST spam-elők, hogy előtte egy GET-tel kérjenek tokent).