7 ХТМЛ безбедносних најбољих пракси за рањивости статичких веб локација

Statičke web lokacije skladište već pripremljen sadržaj, što eliminše potrebu za pristupom bazama podataka, pokretanjem kompleksnih skripti ili zavisnosti od pokretačkog mehanizma pri svakom zahtevu korisnika.

Ovo donosi jasne prednosti u brzini učitavanja i bezbednosti: statičke stranice smanjuju opterećenje servera i poseduju manji broj ranjivosti. To zauzvrat rezultira boljim rangiranjem statičkih stranica od strane pretraživača u odnosu na njihove dinamičke ekvivalente.

Stručnjaci za SEO sve češće koriste statički sadržaj kad god je to moguće, kako bi ostvarili prednost u konkurentnom okruženju gde i delić sekunde može biti presudan za uspeh. Implementacija statičkog sadržaja postala je popularna tema među marketinškim stručnjacima, dok IT osoblje ceni smanjenje broja ranjivih tačaka koje zahtevaju nadzor.

Ipak, treba biti oprezan – nisu 100% otporne na hakovanje, tako da ako planirate da koristite statički sadržaj na svom sajtu, treba da pratite određene najbolje prakse kako biste ga zaštitili.

Bezbednosni headeri su podskup HTTP header-a odgovora – set metapodataka, kodova grešaka, pravila keširanja itd., koje veb server dodaje sadržaju koji šalje – dizajnirani su da upute pregledač kako da postupa sa primljenim sadržajem. Nisu svi pregledači kompatibilni sa svim bezbednosnim header-ima, ali postoji skup onih koji su prilično uobičajeni i pružaju osnovne bezbednosne mere za sprečavanje zloupotrebe ranjivosti od strane hakera.

X-Frame-Options: SAMEORIGIN

X-Frame-Options header ima za cilj da onemogući ili smanji rizike koje donose iframe-ovi na vašem sajtu. Iframe-ove hakeri mogu zloupotrebiti za preusmeravanje legitimnih klikova i posetilaca na željene URL adrese. Postoji više načina za sprečavanje zloupotrebe iframe-ova.

Najbolja praksa koju preporučuje OWASP (Open Web Application Security Project) savetuje upotrebu ovog header-a sa parametrom SAMEORIGIN, koji dozvoljava korišćenje iframe-ova samo sa istog domena. Druge opcije su DENY, za potpuno onemogućavanje iframe-ova, i ALLOW-FROM, za dozvoljavanje ugradnje stranica u iframe-ove samo sa specificiranih URL adresa.

Pogledajte uputstvo za implementaciju za Apache i Nginx.

X-XSS-Protection: 1; mode=block

X-XSS-Protection header je dizajniran da zaštiti web lokacije od cross-site scripting (XSS) napada. Ova funkcionalnost header-a se može primeniti na dva načina:

  • X-XSS-Protection: 1
  • X-XSS-Protection: 1; mode=block

Prva opcija je manje restriktivna, filtrira skripte iz zahteva ka web serveru, ali ipak prikazuje stranicu. Druga opcija je sigurnija jer blokira celu stranicu kada se detektuje XSS skripta u zahtevu. Druga opcija je preporučena najbolja praksa OWASP-a.

X-Content-Type-Options: nosniff

Ovaj header sprečava upotrebu MIME „sniffing“-a – funkcije koja omogućava pregledaču da skenira sadržaj i reaguje drugačije od onoga što header specificira. Kada je ovaj header prisutan, pregledač mora da podesi tip sadržaja prema uputstvima, umesto da sam „njuška“ sadržaj.

U slučaju da implementirate ovaj header, trebalo bi da još jednom proverite da li su tipovi sadržaja ispravno podešeni za sve stranice vašeg statičkog web sajta.

Content-Type: text/html; charset=utf-8

Ova linija se dodaje u header-e zahteva i odgovora za HTML stranice od verzije 1.0 HTTP protokola. Ona definiše da se sve oznake prikazuju u pregledaču, prikazujući tako rezultat na web stranici.

Koristite TLS sertifikate

SSL/TLS sertifikat je neophodan za svaku web lokaciju, jer omogućava web serveru da šifruje podatke koje šalje ka web pregledaču koristeći siguran HTTPS protokol. Na taj način, ako se podaci presretnu tokom prenosa, biće nečitljivi, što je od suštinske važnosti za zaštitu privatnosti korisnika i bezbednosti web stranice. Iako statička web lokacija ne skladišti lične podatke svojih posetilaca, neophodno je sprečiti neželjene posmatrače da vide informacije koje traže.

Korišćenje enkripcije je neophodno da bi većina web pregledača označila web lokaciju kao sigurnu i obavezno je za web lokacije koje žele da budu usklađene sa Opštom uredbom o zaštiti podataka EU (GDPR). Zakon ne specificira izričito upotrebu SSL sertifikata, ali je to najjednostavniji način za ispunjavanje zahteva za privatnost iz uredbe.

Sa aspekta bezbednosti, SSL sertifikat omogućava da vlasti provere vlasništvo nad sajtom i sprečava hakere da kreiraju lažne verzije istog. Korišćenjem SSL sertifikata, posetilac može da proveri autentičnost izdavača i da bude siguran da niko ne može da špijunira njegove aktivnosti na web lokaciji.

Dobra vest je da sertifikat ne mora biti skup. Možete ga dobiti BESPLATNO od ZeroSSL ili kupiti premium verziju od SSL Store.

Postavite DDoS zaštitu

DDoS (Distributed Denial-of-Service) napadi postaju sve češći. U ovoj vrsti napada, skup distribuiranih uređaja se koristi za preplavljivanje servera velikim brojem zahteva, sve dok se server ne preoptereti i prestane da funkcioniše. Nije važno da li vaša web lokacija ima statički sadržaj – njen web server bi lako mogao postati žrtva DDoS napada ako ne preduzmete neophodne mere.

Najlakši način za implementaciju DDoS zaštite je da prepustite brigu o svim sajber pretnjama provajderu bezbednosnih usluga. Ova usluga će obezbediti otkrivanje upada, antivirusne usluge, skeniranje ranjivosti i mnogo toga, što će znatno umanjiti brigu o pretnjama.

Ovakvo sveobuhvatno rešenje može biti skupo, ali postoje i fokusiranija i jeftinija rešenja, kao što je DDoS zaštita kao usluga (DPaaS). Možete se informisati kod svog hosting provajdera da li nudi ovakvu uslugu.

Pristupačnija rešenja su usluge zaštite od DDoS napada zasnovane na oblaku, poput onih koje nude Akamai, Sucuri, ili Cloudflare. Ove usluge pružaju rano otkrivanje i analizu DDoS napada, kao i filtriranje i preusmeravanje tih napada, odnosno preusmeravanje zlonamernog saobraćaja sa vaše web lokacije.

Kada razmatrate anti-DDoS rešenje, obratite pažnju na njegov mrežni kapacitet: ovaj parametar ukazuje na jačinu napada koju zaštita može da izdrži.

Izbegavajte ranjive JavaScript biblioteke

Čak i ako vaša web lokacija ima statički sadržaj, mogla bi koristiti JavaScript biblioteke koje predstavljaju bezbednosne rizike. Smatra se da oko 20% ovih biblioteka čini web lokaciju ranjivijom. Srećom, postoji usluga Vulnerability DB pomoću koje možete proveriti da li je određena biblioteka sigurna ili ne. U njihovoj bazi podataka možete pronaći detaljne informacije i uputstva za mnoge poznate ranjivosti.

Pored provere ranjivosti konkretne biblioteke, možete da pratite sledeću listu najboljih praksi za JavaScript biblioteke, kako biste umanjili potencijalne rizike:

  • Nemojte koristiti spoljašnje servere za biblioteke. Umesto toga, čuvajte biblioteke na istom serveru kao i vaš web sajt. Ako morate da koristite spoljašnje biblioteke, izbegavajte korišćenje biblioteka sa servera sa crne liste i periodično proveravajte bezbednost spoljnih servera.
  • Koristite kontrolu verzija za JavaScript biblioteke i uverite se da koristite najnoviju verziju svake biblioteke. Ako kontrola verzija nije moguća, onda koristite verzije koje nemaju poznate ranjivosti. Možete koristiti retire.js za detekciju ranjivih verzija.
  • Redovno proveravajte da li vaša web lokacija koristi spoljašnje biblioteke za koje ne znate. Na taj način ćete znati da li je haker ubacio linkove do neželjenih dobavljača biblioteka. Napadi ubacivanja su malo verovatni na statičkim web lokacijama, ali neće škoditi da ovo povremeno proveravate.

Primenite strategiju pravljenja rezervnih kopija

Statička web lokacija bi uvek trebalo da ima sigurnu rezervnu kopiju svog sadržaja kad god se on menja. Rezervne kopije treba da se čuvaju na sigurnom mestu i da budu lako dostupne u slučaju potrebe za vraćanjem lokacije u slučaju kvara. Postoji više načina za kreiranje rezervnih kopija vašeg statičkog web sajta, a oni se mogu kategorizovati na ručne i automatske.

Ukoliko se sadržaj vaše web lokacije ne menja često, ručna strategija pravljenja rezervnih kopija može biti adekvatna – samo morate zapamtiti da napravite novu kopiju svaki put kada se sadržaj promeni. Ukoliko imate kontrolnu tablu za upravljanje vašim hosting nalogom, vrlo je verovatno da će u okviru te kontrolne table postojati opcija za pravljenje rezervnih kopija. Ukoliko ne, uvek možete koristiti FTP klijent da preuzmete sav sadržaj web lokacije na lokalni uređaj, gde možete da ga čuvate i vratite po potrebi.

Automatska opcija je poželjna ako želite da minimizirate zadatke upravljanja web sajtom. Automatske rezervne kopije se obično nude kao premijum funkcija od strane provajdera hostinga, što utiče na ukupne troškove zaštite vaše web lokacije.

Možete razmisliti o korišćenju cloud storage usluge za rezervne kopije.

Koristite pouzdanog provajdera hostinga

Pouzdan web hosting servis je neophodan da garantuje da će vaša web lokacija funkcionisati bez problema i brzo, ali i da budete sigurni da neće biti hakovana. Većina pregleda web hosting usluga će vam pokazati brojke i poređenja o brzini, vremenu neprekidnog rada i korisničkoj podršci, ali kada se razmatra bezbednost web lokacije, treba obratiti pažnju na neke aspekte i o njima treba pitati svog provajdera pre nego što angažujete njegovu uslugu:

  • Bezbednost softvera: treba da saznate kako se vrši upravljanje ažuriranjima softvera; npr. da li se softver automatski ažurira ili da li se svako ažuriranje testira pre primene.
  • DDoS zaštita: ako je ova vrsta zaštite uključena u hosting uslugu, tražite detalje o implementaciji kako biste proverili da li ispunjava zahteve vaše web lokacije.
  • Dostupnost i podrška SSL-a: budući da u većini slučajeva sertifikatima upravlja hosting provajder, proverite koju vrstu sertifikata nudi i koja je politika obnavljanja sertifikata.
  • Pravljenje rezervnih kopija i vraćanje: mnogi provajderi hostinga nude automatizovanu uslugu pravljenja rezervnih kopija, što je prednost jer vam omogućava da zaboravite na rezervne kopije, njihovo čuvanje i ažuriranje. Međutim, uzmite u obzir cenu ove usluge i odmerite je u odnosu na trud koji će vam biti potreban da sami održavate rezervnu kopiju.
  • Zaštita od zlonamernog softvera: pouzdan hosting provajder treba da ima servere zaštićene od zlonamernog softvera, periodičnim skeniranjem malvera i nadgledanjem integriteta datoteka. Ukoliko je u pitanju deljeni hosting, poželjno je da provajder koristi izolaciju naloga kako bi sprečio širenje zaraze malverom između susednih web lokacija.
  • Zaštita zaštitnog zida: provajder hostinga može povećati bezbednost web lokacija postavljanjem zaštitnog zida koji blokira neprijateljski saobraćaj.

Pogledajte pouzdanu statičku platformu za hosting sajtova.

Sprovođenje politike jakih lozinki

Budući da statička lokacija nema bazu podataka ili sistem za upravljanje sadržajem, ima manje korisničkih imena i lozinki za upravljanje. Ipak, treba da primenite politiku lozinki za hosting ili FTP naloge koje ćete koristiti za ažuriranje statičkog sadržaja.

Dobre prakse za lozinke uključuju:

  • Periodičnu promenu lozinki
  • Postavljanje minimalne dužine lozinki
  • Korišćenje kombinacija velikih i malih slova, specijalnih znakova i brojeva
  • Izbegavanje komunikacije lozinkama putem email-a ili tekstualnih poruka.

Takođe, podrazumevanu lozinku za administrativne naloge treba promeniti odmah na početku – ovo je uobičajena greška koju hakeri lako mogu da iskoriste. Ne plašite se gubitka lozinke; koristite menadžer lozinki za njihovo bezbedno upravljanje.

Da budemo statični

Pre nekoliko godina, dinamički sadržaj je bio pravi put: sve se moglo lako menjati i ažurirati, omogućavajući redizajn celog web sajta u roku od nekoliko sekundi. Ali tada je brzina postala glavni prioritet i statički sadržaj je odjednom ponovo postao popularan.

U tom smislu, sve bezbednosne prakse za web sajtove treba ponovo proceniti – svakako ima manje aspekata na koje treba obratiti pažnju, ali ne treba da se opuštate. Ova lista najboljih praksi će vam pomoći da napravite sopstvenu kontrolnu listu kako biste osigurali da vaš statički web sajt bude bezbedan i funkcionalan.