Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Failide üleslaadimise moodulid on veebirakenduste üks nõrgemaid lülisid. Kõik tehtud vead, isegi need, mida peate väikeseks, võivad viia selleni, et serveri juhtimine langeb otse küberründaja kätte. Sel põhjusel peavad tarkvaraarendajad teadma levinumaid vigu ja mõningaid rünnakumeetodeid, mis võivad ette tulla.

Mis on siis kliendipoolne manipuleerimine? Kuidas saate sellega võidelda, et hoida oma saidid ja kasutajad turvalisena?

Mis on kliendipoolne manipuleerimine?

Kliendipoolne rikkumine on veebirakenduste rünnakute kui terviku põhikontseptsioon. Lihtsamalt öeldes tähendab see, et te ei saa enam kasutajale saadetavaid andmeid usaldada. Lisaks on kliendipoolne rikkumine üks turvalise rakenduste arendamise aluseid. Kui uurite käsitletavat faili üleslaadimismoodulit ja kaalute kliendipoolset võltsimist, on andmed, mida te ei saa usaldada, hõlmavad järgmist:

instagram viewer
  • Üleslaaditud faili nimi.
  • Üleslaaditud faili sisutüüp.

Need kaks eset on kus teil on võimalus lisada valgesse nimekirja tarkvaraarendajana. Üleslaaditud faili nimeandmed võivad sisaldada kõike, mida on kliendipoolselt rikutud. Üleslaaditud faili sisutüübi andmete korral võib see fail kuvada süsteemis pildi/jpeg-vormingus, isegi kui ründaja laadib üles .exe-faili.

Faililaiend ja valge loend

Failide üleslaadimise moodulite väljatöötamisel on esimene asi, mida teha faililaiendi valgesse nimekirja lisamise protsess. Näiteks soovib kasutaja üles laadida faili nimega "muo.jpeg". Peate veenduma, et see faililaiend, mille kasutaja soovib üles laadida, on .jpeg. Selleks peaks süsteem kontrollima üleslaaditud faili ja kontrollima, kas see on üks lubatud faililaienditest. Et mõista, kuidas seda teha, uurige järgmist lihtsat PHP-koodi:

$faili_osad = teeinfo($failinimi);
lüliti($file_parts['laiendus'])
{
juhtum "jpg":
murda;

juhtum "nahkhiir": // Või exe, dll, nii jne.
murda;

juhtum "":
juhtumNULL: // Faililaiendit pole
murda;
}

Seda saate teha ülaltoodud koodiplokiga või kasutada kasutatava raamistiku pakutavaid klasse ja funktsioone.

Olge ettevaatlik, et mitte luua faililaiendi andmeid, sõeludes failinime punkti (.) tähemärgi järgi, sest ründaja võib sellest kontrollietapist mööda minna failinimega, näiteks "muo.jpeg.php".

Mis on sisu tüüpi teave?

Sisutüübi teave on osa teabest, mis saadetakse HTTP-päringus iga faili üleslaadimise kohta. Interneti-brauser tuvastab selle teabe ja lisab selle saadetud päringule. Ründaja võib proovida teavet muuta kliendipoolse võltsimisega ja serveripoolsetest valideerimistest mööda minna. Selles etapis vajavad arendajad kontrollimehhanismi sisutüübi teabe kontrollimiseks. Sellest üksi ei piisa; Sellegipoolest on see arendajate jaoks oluline teema, millele tähelepanu pöörata.

Oletame, et kodeerite faililaiendi õigeks kontrollimiseks mehhanismi ja aktsepteerite ainult .jpeg-laiendiga faile. Lisaks sellele ettevaatusabinõule saate vaadata ka sisu tüübi teavet ja aktsepteerige ainult pildi-/jpeg-teavet sisaldavaid faile, mis on lisakaitse tase küberrünnakud

SWF-i Flash-failid ja rünnakuetapid

Faililaiend ja sisutüübi andmed ei tähenda midagi Interneti-brauserite jaoks, mis toetavad pistikprogramme, nagu Adobe Flash Player. Kuigi selle mängija tugi pole enam saadaval, on siiski võimalik neid seotud faile installida paljudesse süsteemidesse, kuigi Flash on endiselt turvarisk. Süsteemis, mis ei ole rakendanud asjakohaseid ettevaatusabinõusid, on võimalik Flash-faili kutsuda silt, olenemata selle laiendist. See põhjustab veel ühe tõsise turvaprobleemi.

Tegutsemiseks peavad arendajad teadma küberkurjategijate võimalusi. See võib juhtuda järgmiselt.

  1. Pahatahtlik ründaja laadib sihtveebisaidile üles SWF-i (Adobe Flashi failivorming) nimega "image.jpeg". Üleslaadimise käigus kinnitatakse valge nimekirja kandmise kinnitusel, et ründaja üles laaditud failil on .jpeg laiend. Kliendipoolse võltsimise korral jääb sisutüübi kinnitamisest mööda. Kujutage ette, et see ohutegija üles laaditud fail läheb aadressile www (punkt) sihtsait (punkt) com/images/images.jpeg.
  2. Oletame, et ründajal on veebisait, mille nimi on attacker (dot) com. Ründaja kutsub selle veebisaidi sihtsaidile üles laaditud faili image.jpeg, kasutades märgend rakenduse/x-shockwave-flash tüübi määranguga.
  3. Süütu kasutaja logib sisse ründaja (dot) com-i. See sait kutsub üles SWF-faili aadressil www (punkt) siht-sait (punkt) com/images/image.jpeg ja täidab SWF-ile antud käsud.
  4. Selle kaudu saab küberründaja luua sihtsaidi (punkt) com-aadressi HTTP-päringu toiminguid, ilma et tavakasutajad seda märkaksid. Nende päringutega kasutab ründaja süütu kasutaja seanssi ja läheb sellest mööda CSRF-i kontroll.

Selle rünnakustsenaariumi selgemaks mõistmiseks lugege järgmist koodi HTML-is ründaja (punkt) com-i kasutajale saadetud sisu:

stiil="kõrgus: 1px; laius: 1px;" andmed="www.target-site.com/images/image.jpeg" tüüp="rakendus/x-shockwave-flash" lubascriptaccess="alati" flashvars="c=loe&u = midagi"

Üks parimaid lahendusi on juurdepääs failidele, mis on üles laaditud failide üleslaadimisega erinev alamdomeen. Eespool nimetatud stsenaariumi korral pääsete staatilistele failidele juurde mitte samast domeenist, vaid erinevast alamdomeenist järgmiselt: "http (koolon)//file.target-site (punkt) com/images/image.jpeg".

Teine lahendus on lisada Sisu-Paigutus: kinnitus HTTP vastusele, kui saate juurdepääsutaotluse failidele, mida soovite üles laadida.

Võtke kasutusele ettevaatusabinõud failide üleslaadimise haavatavuste korral

Igasugune failide üleslaadimine, mida kasutajad saavad veebisaidile teha, on ohtlik, seega on see üks probleeme, millele arendajad peaksid kõige rohkem tähelepanu pöörama. Kui ründajad avastavad sellise haavatavuse, saavad nad saidil avada kesta ja serveris olevat teavet hõlpsasti ära kasutada. Eluliselt oluline on juhtida kõiki kasutajate üleslaaditud faile, rakendada valge nimekirja meetodeid ja võimalusel peita üleslaaditud kataloogi asukoht.

Ja loomulikult peate oma saidi kaitsmiseks tegema palju muid täiendavaid samme, isegi kui võtate failimoodulite üleslaadimiseks kasutusele kõik soovitatud ettevaatusabinõud. HTTP-turvapäiste kasutamine on üks selline samm, mida saate teha.