Kā izveidot drošas tīmekļa veidlapas: pārbaudiet, izdzēsiet un kontrolējiet

Kaut arī kiberdrošība bieži tiek domāta datu bāzēs un arhitektūrā, liela daļa no drošās pozīcijas balstās uz priekšgala izstrādātāja domēna elementiem.

Dažām potenciāli postošām ievainojamībām, piemēram, SQL injekcijai un starpvietņu skriptiem (XSS), pārdomāta lietotāja saskarne ir pirmā aizsardzības līnija.

Šeit ir dažas uzmanības jomas front-end izstrādātājiem, kuri vēlas palīdzēt cīņā ar labu cīņu.

Kontrolēt lietotāja ievadi

Kad izstrādātāji izveido veidlapu, kas nespēj kontrolēt lietotāja ievadi, var notikt pavisam trakas lietas. Lai apkarotu tādas ievainojamības kā injekcijas, ir svarīgi validēt vai dezinficēt lietotāju ievadīto informāciju.

Jūs varat pārbaudīt ievadi, ierobežojot to ar zināmām vērtībām, piemēram, veidlapās izmantojot semantiskos ievades veidus vai ar validāciju saistītus atribūtus. Palīdz arī tādi ietvari kā Django, šim nolūkam nodrošinot lauku tipus. Datu dzēšanu var veikt, noņemot vai aizstājot kontekstā bīstamas rakstzīmes, piemēram, izmantojot balto sarakstu vai izvairoties no ievades datiem.

Lai gan tas, iespējams, nav intuitīvs, būtu jāapstiprina pat dati, kurus lietotājs iesniedz savam vietnes apgabalam. Viens no ātrākajiem vīrusu pavairošanas gadījumiem bija Samy tārps MySpace (jā, es esmu vecs), pateicoties kodam, kuru Samy Kamkar varēja injicēt pats savā profila lapā. Neatgrieziet nevienu ievadi savā vietnē bez rūpīgas validācijas vai sanitārijas.

Lai iegūtu papildu norādījumus par injekciju uzbrukumu apkarošanu, skatiet OWASP injekciju novēršanas krāpnieku lapu.

Sargieties no slēptajiem laukiem

Pievienošana type="hidden"ir vilinoši ērts veids, kā slepenus datus paslēpt lapās un veidlapās, bet diemžēl nav efektīvs.

Izmantojot tādus rīkus kā ZapProxy un pat pārbaudes rīkus vienkāršās tīmekļa pārlūkprogrammās, lietotāji var viegli noklikšķināt, lai atklātu garšīgus neredzamas informācijas fragmentus.

Izvēles rūtiņu paslēpšana var būt veikls uzlaušana, lai izveidotu tikai CSS slēdžus, taču slēptie lauki maz veicina drošību.

Rūpīgi apsveriet automātiskās aizpildes laukus

Kad lietotājs izvēlas sniegt jums savu personu identificējošo informāciju (PII), tai vajadzētu būt apzinātai izvēlei. Automātiskās aizpildīšanas veidlapu lauki var būt ērti - gan lietotājiem, gan uzbrucējiem. Izmantojot slēptos laukus, var iegūt PII, ko iepriekš ir uzņēmis automātiskās pabeigšanas lauks.

Daudzi lietotāji pat nezina, kāda informācija ir saglabāta viņu pārlūkprogrammas automātiskajā aizpildē. Izmantojiet šos laukus taupīgi un atspējojiet automātiskās aizpildīšanas veidlapas īpaši slepeniem datiem.

Ir svarīgi arī nosvērt riska profilu salīdzinājumā ar tā kompromisiem. Ja jūsu projektam jābūt saderīgam ar WCAG, automātiskās pabeigšanas atspējošana var izjaukt jūsu ievadi dažādām modalitātēm. Lai uzzinātu vairāk, skatiet sadaļu 1.3.5: Ievades mērķa noteikšana WCAG 2.1.

Saglabājiet kļūdas vispārīgas

Lai arī šķiet noderīgi informēt lietotājus par datu esamību, tas ir ļoti noderīgi arī uzbrucējiem. Nodarbojoties ar kontiem, e-pastiem un PII, visdrošāk ir kļūdīties (?) Mazāk. Tā vietā, lai atgrieztu “Jūsu šī konta parole nav pareiza”, izmēģiniet neskaidrākas atsauksmes “Nepareiza pieteikšanās informācija” un izvairieties no tā, lai sistēmā būtu norādīts lietotājvārds vai e-pasts.

Lai būtu noderīgāks, norādiet pamanāmu veidu, kā sazināties ar cilvēku, ja rodas kļūda. Izvairieties no tādas informācijas atklāšanas, kas nav nepieciešama. Ja nekas cits, debesu dēļ, neiesakiet datus, kas ir tuvu lietotāja ievadītajam.

Esi slikts puisis

Apsverot drošību, ir lietderīgi spert soli atpakaļ, novērot redzamo informāciju un pajautāt sev, kā ļaunprātīgs uzbrucējs varētu to izmantot. Spēlē velna aizstāvi. Ja kāds slikts puisis redzētu šo lapu, kādu jaunu informāciju viņi iegūtu? Vai skatā ir redzama kāda PII?

Pajautājiet sev, vai viss lapā esošais patiešām ir vajadzīgs patiesam lietotājam. Ja nē, rediģējiet vai noņemiet to. Mazāk ir drošāk.

Drošība sākas pie ārdurvīm

Mūsdienās ir daudz vairāk pārklāšanās starp kodēšanu priekšējā galā un aizmugurē. Lai izveidotu labi noapaļotu un drošu lietojumprogrammu, tas palīdz vispārīgi izprast veidus, kā uzbrucēji var ielikt kāju ārdurvīs.