Veebisaidid ja rakendused nõuavad sageli kasutajapoolset sisendit, et oma eesmärki täita. Kui veebisait võimaldab kasutajatel tellida, peavad kasutajad saama sisestada oma e-posti aadressi. Ja veebis ostlemine nõuab ilmselgelt makseandmete sisestamist.
Kasutaja sisestamise probleem seisneb aga selles, et see võimaldab ka häkkeril sisestada midagi pahatahtlikku, et meelitada veebisaiti või rakendust valesti käituma. Selle eest kaitsmiseks peab iga kasutaja sisendit pakkuv süsteem omama sisendi valideerimist.
Mis on sisendi valideerimine ja kuidas see toimib?
Mis on sisendi kinnitamine?
Sisendite valideerimine on protsess, mille käigus analüüsitakse sisendeid ja keelatakse need, mida peetakse sobimatuks. Sisendite valideerimise idee seisneb selles, et lubades ainult kindlatele kriteeriumidele vastavaid sisendeid, muutub ründajal võimatuks sisestada sisendit, mille eesmärk on süsteemi kahjustada.
Sisestuse valideerimist tuleks kasutada mis tahes veebisaidil või rakenduses, mis võimaldab kasutajal sisendeid. Isegi kui veebisait või rakendus ei salvesta konfidentsiaalset teavet, võib kehtetute sisestuste lubamine samuti põhjustada probleeme kasutajakogemusega.
Miks on sisendi kinnitamine oluline?
Sisestuse valideerimine on oluline kahel põhjusel, nimelt kasutajakogemusel ja turvalisusel.
Kasutajakogemus
Kasutajad sisestavad sageli kehtetuid sisestusi mitte sellepärast, et nad üritavad veebisaiti või rakendust rünnata, vaid seetõttu, et nad tegid vea. Kasutaja võib kirjutada sõna valesti või anda valet teavet, näiteks sisestada oma kasutajanime valesse kasti või proovida vananenud parooli. Kui see juhtub, saab sisendi valideerimist kasutada kasutaja teavitamiseks nende veast, mis võimaldab neil seda kiiresti parandada.
Sisestuse kinnitamine hoiab ära ka stsenaariumid, kus registreerumised ja müügid kaovad, kuna kasutajat ei teavitata ja seega usub, et sisestati õige sisend, kuigi seda pole tehtud.
Turvalisus
Sisestuse valideerimine hoiab ära suure hulga ründeid, mida saab sooritada veebisaidi või rakenduse vastu. Need küberrünnakud võivad põhjustada isikuandmete vargusi, lubada volitamata juurdepääsu teistele komponentidele ja/või takistada veebisaidi/rakenduse toimimist.
Samuti on lihtne tuvastada sisendi kinnitamise väljajätmist. Ründajad saavad kasutada automaatseid programme, et sisestada veebisaitidele hulgi kehtetuid sisendeid ja teha kindlaks, kuidas veebisaidid reageerivad. Seejärel saavad nad käivitada käsitsi rünnakuid mis tahes veebisaitidele, mis pole kaitstud.
See tähendab, et sisendi kinnitamise puudumine pole mitte ainult oluline haavatavus; see on haavatavus, mida sageli leitakse ja mis võib sageli põhjustada häkkimisi.
Mis on sisendi kontrollimise rünnakud?
Sisestuse kontrollimise rünnak on mis tahes rünnak, mis hõlmab pahatahtliku sisendi lisamist kasutaja sisestusväljale. On palju erinevat tüüpi sisendi kinnitamise ründeid, mis üritavad teha erinevaid asju.
Puhvri ületäitumine
Puhvri ületäitumine tekib siis, kui süsteemi lisatakse liiga palju teavet. Kui sisendi valideerimist ei kasutata, ei takista miski ründajal lisamast nii palju teavet, kui ta soovib. Seda nimetatakse a puhvri ülevoolu rünnak. See võib põhjustada süsteemi toimimise lõpetamise ja/või praegu salvestatud teabe kustutamise.
SQL-i süstimine
SQL-i sisestamine on sisendväljadele SQL-päringute lisamise protsess. See võib hõlmata SQL-päringu lisamist veebivormile või SQL-päringu lisamist URL-ile. Eesmärk on meelitada süsteem päringut täitma. SQL-i süstimist saab kasutada turvalistele andmetele juurdepääsuks ning andmete muutmiseks või kustutamiseks. See tähendab, et sisendi kinnitamine on eriti oluline mis tahes veebisaidi või rakenduse jaoks, mis salvestab olulist teavet.
Saididevaheline skriptimine
Saididevaheline skriptimine hõlmab koodi lisamine kasutaja sisestusväljadele. Seda tehakse sageli koodi lisamisega mainekale veebisaidile kuuluva URL-i lõppu. URL-i saab jagada foorumite või sotsiaalmeedia kaudu ning kood käivitatakse siis, kui ohver sellel klõpsab. See loob pahatahtliku veebilehe, mis näib olevat majutatud mainekas veebisaidil.
Idee seisneb selles, et kui ohver usaldab sihtveebisaiti, peaks ta usaldama ka pahatahtlikku veebilehte, mis näib sellele kuuluvat. Pahatahtliku veebilehe saab kujundada klahvivajutuste varastamiseks, teistele lehtedele ümbersuunamiseks ja/või automaatse allalaadimise alustamiseks.
Kuidas sisendi valideerimist rakendada
Sisestuse valideerimist pole keeruline rakendada. Peate lihtsalt välja mõtlema, millised reeglid on kehtetu sisendi vältimiseks vajalikud, ja seejärel need süsteemi lisama.
Kirjutage kõik andmesisendid
Looge loend kõigist võimalikest kasutaja sisestustest. Selleks peate vaatama kõiki kasutajavorme ja kaaluma muid sisestustüüpe, näiteks URL-i parameetreid.
Loo reeglid
Kui teil on kõigi andmesisendite loend, peaksite looma reeglid, mis määravad, millised sisendid on vastuvõetavad. Siin on mõned levinumad reeglid, mida rakendada.
- Valge nimekirja lisamine: lubage sisestada ainult konkreetseid märke.
- Must nimekirja lisamine: teatud märkide sisestamise vältimine.
- Vorming: lubage ainult sisendeid, mis vastavad kindlale vormingule, st lubage ainult e-posti aadresse.
- Pikkus: lubada ainult kuni teatud pikkusega sisestusi.
Rakenda reegleid
Reeglite rakendamiseks peate veebisaidile või rakendusele lisama koodi, mis lükkab tagasi kõik sisendid, mis neid ei järgi. Kehtetutest sisenditest tuleneva ohu tõttu tuleks süsteemi enne kasutuselevõttu testida.
Loo vastuseid
Eeldades, et soovite, et sisendi valideerimine aitaks ka kasutajaid, peaksite lisama teated, mis selgitavad nii, miks sisend on vale, kui ka seda, mida tuleks selle asemel lisada.
Sisestuse kinnitamine on enamiku süsteemide nõue
Sisestuse kinnitamine on oluline nõue iga veebisaidi või rakenduse jaoks, mis võimaldab kasutajal sisestada. Ilma kontrollita, millist sisendit süsteemi lisatakse, on ründajal hulk tehnikaid, mida saab häkkimise eesmärgil kasutada.
Need tehnikad võivad süsteemi krahhi teha, seda muuta ja/või võimaldada juurdepääsu privaatsele teabele. Ilma sisendi kinnitamiseta süsteemid muutuvad häkkerite jaoks populaarseteks sihtmärkideks ja Internetist otsitakse neid pidevalt.
Kuigi sisendi valideerimist kasutatakse peamiselt turvaeesmärkidel, on sellel oluline roll ka kasutajate teavitamisel, kui nad midagi valesti lisavad.