A biztonságos webes űrlapok megtervezése: Validálás, fertőtlenítés és ellenőrzés

Míg a kiberbiztonságra gyakran az adatbázisok és az architektúra vonatkozásában gondolnak, az erős biztonsági testtartás nagy része a front-end fejlesztő tartományának elemeire támaszkodik.

Bizonyos potenciálisan pusztító sebezhetőségek, például az SQL injekció és a Cross-Site Scripting (XSS) esetében a megfontolt felhasználói felület az első védelmi vonal.

Íme néhány olyan terület a front-end fejlesztők számára, akik segíteni akarnak a jó küzdelemben.

A felhasználói bemenet vezérlése

Őrült dolgok történhetnek, amikor a fejlesztők olyan űrlapot készítenek, amely nem tudja ellenőrizni a felhasználói inputokat. Az olyan sebezhetőségek leküzdése érdekében, mint az injekció, fontos a felhasználói adatok validálása vagy megtisztítása.

A bevitelt úgy érvényesítheti, hogy ismert értékekre korlátozza azt, például szemantikus bemeneti típusok vagy érvényesítéssel kapcsolatos attribútumok használatával az űrlapokban. A Django-hoz hasonló keretrendszerek szintén segítenek, ha terepi típusokat nyújtanak erre a célra. Az adatok megtisztítása a kontextus szempontjából veszélyes karakterek eltávolításával vagy cseréjével történhet, például fehér lista használatával vagy a bemeneti adatok elhagyásával.

Lehet, hogy nem intuitív, de még azokat az adatokat is ellenőrizni kell, amelyeket a felhasználó a saját területére nyújt be egy webhelyen. Az egyik leggyorsabban terjedő vírus a Samy féreg volt a MySpace-en (igen, öreg vagyok), köszönhetően a kódnak, amelyet Samy Kamkar be tudott fecskendezni a saját profiloldalára. Ne küldjön közvetlenül semmilyen információt a webhelyére alapos érvényesítés vagy fertőtlenítés nélkül.

Az injekciós támadások leküzdésével kapcsolatos további útmutatásért lásd az OWASP injekció-megelőzési csalólapot.

Óvakodjon a rejtett mezőktől

A hozzáadás type="hidden"csábítóan kényelmes módszer a bizalmas adatok elrejtésére az oldalakon és az űrlapokban, de sajnos nem hatékony.

Olyan eszközökkel, mint a ZapProxy, sőt a sima webböngészőben található ellenőrző eszközökkel is, a felhasználók könnyedén rákattinthatnak, hogy felfedjék a láthatatlan információk finom darabjait.

A jelölőnégyzetek elrejtése szép hack lehet a CSS-kapcsolók létrehozásához, de a rejtett mezők nemigen járulnak hozzá a biztonsághoz.

Gondosan fontolja meg az automatikus kitöltési mezőket

Amikor a felhasználó úgy dönt, hogy megadja Önnek személyazonosításra alkalmas adatait (PII), annak tudatos választásnak kell lennie. Az űrlapmezők automatikus kitöltése kényelmes lehet - mind a felhasználók, mind a támadók számára. A rejtett mezők használatával az automatikus kitöltési mezők által korábban elfogott PII-k gyűjthetők be.

Sok felhasználó nem is tudja, hogy a böngésző automatikus kitöltése milyen információkat tárolt. Használja ezeket a mezőket takarékosan, és különösen kényes adatok esetén tiltsa le az automatikus kitöltési űrlapokat.

Fontos, hogy a kockázati profilját is mérlegelje annak kompromisszumaival. Ha a projektnek WCAG-kompatibilisnek kell lennie, akkor az automatikus kiegészítés letiltása megszakíthatja a bemenetet különböző módokhoz. További információ: 1.3.5: A bemeneti cél meghatározása a WCAG 2.1-ben.

Tartsa a hibákat általánosnak

Bár hasznosnak tűnhet tájékoztatni a felhasználókat arról, hogy létezik-e egy adat, a támadók számára is nagyon hasznos. Fiókok, e-mailek és személyazonosító adatok kezelése során a legbiztonságosabb a kevesebb oldalon tévedni (?). Ahelyett, hogy a „Jelszó ehhez a fiókhoz helytelen” lenne a válasz, próbálkozzon a kétértelműbb visszajelzéssel: „Helytelen bejelentkezési adatok”, és kerülje el, hogy kiderüljön, a felhasználónév vagy az e-mail szerepel-e a rendszerben.

Annak érdekében, hogy nagyobb segítséget nyújtson, adjon meg egy jól látható módot az emberekkel való kapcsolatfelvételre, ha hiba merülne fel. Kerülje el a nem szükséges információk felfedését. Ha semmi más, az ég szerelmére, ne javasoljon olyan adatokat, amelyek szorosan illeszkednek a felhasználói bevitelhez.

Legyél rosszfiú

A biztonság mérlegelésekor hasznos visszalépni, megfigyelni a megjelenő információkat, és feltenni a kérdést magának, hogy egy rosszindulatú támadó hogyan tudná hasznosítani azokat. Játssz ördög szószólóját. Ha egy rossz fiú meglátja ezt az oldalt, milyen új információkat szereznének? A nézet mutat PII-t?

Kérdezd meg magadtól, hogy az oldalon szereplő mindenre valóban szükség van-e egy valódi felhasználó számára. Ha nem, akkor módosítsa vagy távolítsa el. A kevesebb biztonságosabb.

A biztonság a bejárati ajtónál kezdődik

Manapság sokkal több átfedés van az elülső és a hátsó rész kódolása között. Egy átfogó és biztonságos alkalmazás létrehozása segít átfogó megértésben arról, hogy a támadók hogyan tudják betenni a bejárati ajtót.