Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Moduli za nalaganje datotek so eden najšibkejših členov spletnih aplikacij. Vse storjene napake, tudi tiste, ki se vam zdijo majhne, ​​lahko povzročijo, da nadzor strežnika pade neposredno v roke kibernetskega napadalca. Iz tega razloga morajo razvijalci programske opreme poznati najpogostejše napake in nekatere metode napada, do katerih lahko pride.

Kaj je torej poseg na strani odjemalca? Kako se lahko borite proti temu, da bodo vaša spletna mesta in vaši uporabniki varni?

Kaj je poseg na strani odjemalca?

Poseg na strani odjemalca je osnovni koncept napadov na spletne aplikacije kot celote. Preprosto povedano, to pomeni, da ne morete več zaupati nobenemu podatku, ki ga pošljete uporabniku. Poleg tega je poseg na strani odjemalca eden od temeljev varnega razvoja aplikacij. Če pregledate modul za nalaganje datotek, s katerim imate opravka, in razmislite o posegu na strani odjemalca, podatki, ki jim ne morete zaupati, vključujejo:

instagram viewer
  • Ime naložene datoteke.
  • Content-Type naložene datoteke.

Ta dva elementa sta kje imate možnost dodati na seznam dovoljenih kot razvijalec programske opreme. Podatki o imenu naložene datoteke lahko vsebujejo kar koli, kar je spremenjeno s strani odjemalca. S podatki o vrsti vsebine naložene datoteke, tudi če napadalec nalaga datoteko .exe, se lahko ta datoteka v sistemu prikaže kot slika/jpeg.

Pripona datoteke in beli seznam

Med razvijanjem modulov za nalaganje datotek je prva stvar, ki jo morate storiti postopek dodajanja na seznam dovoljenih za končnico datoteke. Na primer, uporabnik želi naložiti datoteko z imenom "muo.jpeg". Zagotoviti morate, da je končnica datoteke, ki jo želi uporabnik naložiti, .jpeg. Za to mora sistem preveriti naloženo datoteko in ugotoviti, ali je ena od dovoljenih datotečnih končnic. Če želite razumeti, kako lahko to storite, preglejte naslednjo preprosto kodo PHP:

$file_parts = pathinfo($filename);
stikalo($file_parts['razširitev'])
{
Ovitek "jpg":
odmor;

Ovitek "netopir": // Ali exe, dll, so itd.
odmor;

Ovitek "":
OvitekNIČ: // Ni pripone datoteke
odmor;
}

To lahko storite z blokom kode, podobnim zgornjemu, ali pa uporabite razrede in funkcije, ki jih nudi ogrodje, ki ga uporabljate.

Pazite, da ne ustvarite podatkov o razširitvi datoteke z razčlenjevanjem imena datoteke glede na znak pike (.), ker lahko napadalec zaobide ta korak preverjanja z imenom datoteke, kot je "muo.jpeg.php".

Kaj so informacije o vrsti vsebine?

Informacije o vrsti vsebine so informacije, poslane v zahtevi HTTP za vsako nalaganje datoteke. Internetni brskalnik zazna te informacije in jih doda poslani zahtevi. Napadalec lahko poskuša spremeniti informacije z posegi na strani odjemalca in obide preverjanje veljavnosti na strani strežnika. Na tej stopnji razvijalci potrebujejo nadzorni mehanizem za preverjanje podatkov o vrsti vsebine. Samo to ne bo dovolj; vseeno pa je to pomembno vprašanje, na katerega morajo biti razvijalci pozorni.

Recimo, da kodirate mehanizem za pravilno preverjanje pripone datoteke in sprejemate samo datoteke s pripono .jpeg. Poleg tega previdnostnega mehanizma lahko takoj preverite informacije o vrsti vsebine primeru in sprejme samo datoteke s slikovnimi/jpeg informacijami, dodatno stopnjo zaščite pred kibernetski napadi

Datoteke SWF Flash in koraki napada

Končnica datoteke in podatki o vrsti vsebine ne pomenijo nič internetnim brskalnikom, ki podpirajo vtičnike, kot je Adobe Flash Player. Čeprav podpora za ta predvajalnik ni več na voljo, je te povezane datoteke še vedno mogoče namestiti v številne sisteme, čeprav Flash ostaja varnostno tveganje. V sistemu, ki ni sprejel ustreznih previdnostnih ukrepov, je mogoče priklicati datoteko Flash z ne glede na njeno razširitev. To bo povzročilo še eno resno varnostno težavo.

Da lahko razvijalci ukrepajo, morajo poznati poti, ki jih lahko uberejo kibernetski kriminalci. Tako se lahko zgodi:

  1. Zlonamerni napadalec naloži SWF (format datoteke Adobe Flash) z imenom "image.jpeg" na ciljno spletno mesto. Med postopkom nalaganja se v preverjanju seznama dovoljenih potrdi, da ima datoteka, ki jo je naložil napadalec, pripono .jpeg. Preverjanje vrste vsebine se zaobide z posegi na strani odjemalca. Predstavljajte si, da gre ta datoteka, ki jo naloži akter grožnje, na "www (pika) ciljno mesto (pika) com/images/images.jpeg".
  2. Recimo, da ima napadalec spletno mesto z imenom napadalec (pika) com. Napadalec pokliče datoteko image.jpeg, naloženo na ciljno mesto na tem spletnem mestu, z uporabo oznako z dodelitvijo vrste application/x-shockwave-flash.
  3. Nedolžen uporabnik se prijavi v napadalec (pika) com. To spletno mesto prikliče datoteko SWF na www (pika) target-site (pika) com/images/image.jpeg in izvede ukaze, dane SWF-ju.
  4. S tem lahko kibernetski napadalec ustvari dejanja zahteve HTTP za naslov ciljne strani (pika) com, ne da bi običajni uporabniki to opazili. S temi zahtevami bo napadalec uporabil sejo nedolžnega uporabnika in jo obšel preverjanje CSRF.

Če želite jasneje razumeti ta scenarij napada, pomislite, da je naslednja koda v HTML-ju vsebina, ki jo uporabniku pošlje napadalec (pika) com:

slog="višina: 1px; širina: 1px;" podatki="www.target-site.com/images/image.jpeg" vrsta="aplikacija/x-shockwave-flash" allowscriptaccess="nenehno" flashvars="c=brati&u=nekaj"

Ena najboljših rešitev je dostop do datotek, naloženih z nalaganjem datotek prek drugačna poddomena. V zgoraj omenjenem scenariju lahko dostopate do statičnih datotek ne iz iste domene, ampak iz druge poddomene, kot sledi: "http (dvopičje)//file.target-site (pika) com/images/image.jpeg".

Druga rešitev je dodajanje Vsebina-razporeditev: priloga informacije v odgovor HTTP, ko prejmete zahtevo za dostop do datotek, ki jih želite naložiti.

Upoštevajte previdnostne ukrepe za ranljivosti pri nalaganju datotek

Vsako nalaganje datotek, ki jih lahko uporabniki izvedejo na spletno stran, je nevarno, zato je to ena od težav, ki bi ji razvijalci morali posvetiti največ pozornosti. Če napadalci odkrijejo takšno ranljivost, lahko odprejo lupino znotraj spletnega mesta in zlahka izkoristijo informacije na strežniku. Zelo pomembno je nadzorovati vse datoteke, ki jih naložijo uporabniki, uporabiti metode seznama dovoljenih in skriti lokacijo naloženega imenika, če je to mogoče.

In seveda obstaja veliko drugih dodatnih korakov, ki jih morate izvesti, da zaščitite svoje spletno mesto, tudi če upoštevate vse priporočene varnostne ukrepe za nalaganje datotečnih modulov. Uporaba varnostnih glav HTTP je en tak korak, ki ga lahko naredite.