Webfejlesztés - hogyan kérdezzünk vissza?
bullet Crystal -- 2009-05-03
Mikor egy akármilyen szoftvert fejlesztünk, általában megerősítést kérünk a felhasználótól, mikor az egy fontos és/vagy nem visszaállítható műveletre ad utasítást. Ilyen lehet egy táblázatból egy elem törlése, vagy akármi. Desktop alkalmazásoknál ezen különösebben nincs mit túltárgyalni, megjelenítünk egy message boxot vagy valami hasonlót, és megkérdezzük a felhasználótól, hogy valóban végre akarja-e hajtani az adott műveletet. Webalkalmazások fejlesztésekor alapvetően két lehetőségünk van a visszakérdezésre:
* egy javascript confirm dobozban kérünk megerősítést, vagy valamilyen kliens-oldali DOM-manipulációval megjelenítünk egy megerősítő dobozt
* elküldjük a HTTP-kérést, de nem végezzük el egyből a műveletet, hanem előtte egy új oldalon kérünk megerősítést.

Az első módszernek több előnye van, pl mivel a kliens-oldalon történik a megerősítés, nem terhelik a szervert a félrekattintások, szebben is néz ki, a felhasználó számára is kevésbé körülményes.

Azonban sokkal kevésbé biztonságos, könnyen adhat lehetőséget súlyos következményekkel járó XSS támadásra. Tegyük fel, hogy valaki olyan spamet küld, amiben van egy link, ami mondjuk egy közösségi portál "profil törlése" funkciójának címére mutat. A felhasználó rákattint, nem nézi meg előtte hogy hova mutat a link, és már törölte is az accountját, mivel a javascriptes megerősítést kikerülte a spammer.

Tehát kritikus műveleteknél mindig oldal-újratöltéssel (vagy ajax-szal) érdemes megerősítést kérni, így mindenképp látja az user hogy mit csinál. A példánál maradva, mikor a felhasználó mondjuk a "profil törlése" linkre kattint, akkor tároljuk szerver-oldalon - célszerűen sessionben - hogy rákattintott, kérjünk megerősítést, ha azt megkaptuk, akkor nézzük meg, hogy a folyamat szabályosan zajlott-e (nem egy spam-ből jött a megerősítés) majd csak azután végezzük el a műveletet.
/* */ kommentek
Új komment:
név:
email:
website:

Captcha



megjegyzés