Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Failu augšupielādes moduļi ir viena no vājākajām tīmekļa lietojumprogrammu saitēm. Jebkādas pieļautās kļūdas, pat tādas, kuras uzskatāt par mazām, var izraisīt servera kontroli, kas nonāk tieši kiberuzbrucēja rokās. Šī iemesla dēļ programmatūras izstrādātājiem ir jāzina visizplatītākās kļūdas un dažas uzbrukuma metodes, kas var rasties.

Tātad, kas ir klienta puses manipulācijas? Kā ar to cīnīties, lai nodrošinātu savu vietņu un lietotāju drošību?

Kas ir klienta puses manipulācijas?

Klienta puses manipulācijas ir tīmekļa lietojumprogrammu uzbrukumu pamatjēdziens kopumā. Vienkārši sakot, tas nozīmē, ka vairs nevarat uzticēties nevienam lietotājam nosūtītajiem datiem. Turklāt klienta puses manipulācijas ir viens no drošas lietojumprogrammu izstrādes pamatiem. Ja pārbaudāt failu augšupielādes moduli, ar kuru jums ir darīšana, un apsverat klienta puses manipulācijas, dati, kuriem nevarat uzticēties, ietver:

  • Augšupielādētā faila nosaukums.
  • Augšupielādētā faila satura veids.

Šie divi priekšmeti ir kur jums ir iespēja iekļaut baltajā sarakstā kā programmatūras izstrādātājs. Augšupielādētā faila nosaukuma datos var būt ietverts jebkas ar klienta puses manipulācijām. Izmantojot augšupielādētā faila satura tipa datus, pat tad, ja uzbrucējs augšupielādē .exe failu, šis fails sistēmā var parādīties kā attēls/jpeg.

Faila paplašinājums un baltais saraksts

Izstrādājot failu augšupielādes moduļus, pirmā lieta, kas jādara, ir faila paplašinājuma baltajā sarakstā. Piemēram, lietotājs vēlas augšupielādēt failu ar nosaukumu "muo.jpeg". Jums ir jāpārliecinās, vai šī faila paplašinājums, ko lietotājs vēlas augšupielādēt, ir .jpeg. Lai to izdarītu, sistēmai ir jāpārbauda augšupielādētais fails un jāpārbauda, ​​​​vai tas ir viens no atļautajiem faila paplašinājumiem. Lai saprastu, kā to izdarīt, pārbaudiet šo vienkāršo PHP kodu:

$faila_daļas = pathinfo($faila nosaukums);
slēdzis($file_parts['paplašinājums'])
{
lietu "jpg":
pārtraukums;

lietu "sikspārnis": // Vai exe, dll, tā utt.
pārtraukums;

lietu "":
lietuNULL: // Nav faila paplašinājuma
pārtraukums;
}

To var izdarīt ar koda bloku, kas ir līdzīgs iepriekšminētajam, vai arī varat izmantot klases un funkcijas, ko nodrošina jūsu izmantotais ietvars.

Esiet piesardzīgs, lai neveidotu faila paplašinājuma datus, parsējot faila nosaukumu atbilstoši punkta (.) rakstzīmei, jo uzbrucējs var apiet šo pārbaudes darbību ar faila nosaukumu, piemēram, "muo.jpeg.php".

Kas ir satura tipa informācija?

Satura tipa informācija ir informācijas daļa, kas tiek nosūtīta HTTP pieprasījumā par katru augšupielādes failu. Interneta pārlūkprogramma nosaka šo informāciju un pievieno to nosūtītajam pieprasījumam. Uzbrucējs var mēģināt mainīt informāciju, veicot klienta puses manipulācijas un apiet servera puses validācijas. Šajā posmā izstrādātājiem ir nepieciešams kontroles mehānisms, lai veiktu satura tipa informācijas validāciju. Ar to vien nepietiks; tomēr izstrādātājiem tas ir svarīgs jautājums, kam jāpievērš uzmanība.

Pieņemsim, ka jūs iekodējat mehānismu, lai pareizi pārbaudītu faila paplašinājumu, un jūs pieņemat tikai failus ar paplašinājumu .jpeg. Papildus šim piesardzības mehānismam varat pārbaudīt satura veida informāciju gadījumā un pieņemt tikai failus ar attēlu/jpeg informāciju, papildu aizsardzības līmenis pret kiberuzbrukumiem

SWF Flash faili un uzbrukuma darbības

Faila paplašinājums un satura tipa dati neko nenozīmē interneta pārlūkprogrammām, kas atbalsta spraudņus, piemēram, Adobe Flash Player. Lai gan atbalsts šim atskaņotājam vairs nav pieejams, joprojām ir iespējams instalēt šos saistītos failus daudzās sistēmās, lai gan Flash joprojām ir drošības risks. Sistēmā, kas nav veikusi attiecīgos piesardzības pasākumus, ir iespējams izsaukt Flash failu ar tagu neatkarīgi no tā paplašinājuma. Tas radīs vēl vienu nopietnu drošības problēmu.

Lai varētu rīkoties, izstrādātājiem ir jāzina ceļi, ko kibernoziedznieki var izmantot. Lūk, kā tas var notikt:

  1. Ļaunprātīgais uzbrucējs mērķa vietnē augšupielādē SWF (Adobe Flash faila formātu) ar nosaukumu "image.jpeg". Augšupielādes procesa laikā baltā saraksta verifikācijā tiek apstiprināts, ka uzbrucēja augšupielādētajam failam ir .jpeg paplašinājums. Satura tipa verifikācija tiek apieta ar klienta puses manipulācijām. Iedomājieties, ka šis fails, ko augšupielādējis apdraudējuma dalībnieks, nonāk vietnē www (punkts) mērķa vietne (punkts) com/images/images.jpeg.
  2. Pieņemsim, ka uzbrucējam ir vietne ar nosaukumu attacker (dot) com. Uzbrucējs izsauc image.jpeg failu, kas augšupielādēts šīs vietnes mērķa vietnē, izmantojot tagu ar aplikācijas/x-shockwave-flash tipa piešķiršanu.
  3. Nevainīgs lietotājs piesakās vietnē uzbrucējs (dot) com. Šī vietne izsauc SWF failu vietnē www (punkts) mērķa vietne (punkts) com/images/image.jpeg un izpilda SWF failam dotās komandas.
  4. Tādējādi kiberuzbrucējs var izveidot HTTP pieprasījuma darbības mērķa vietnes (punkta) com adresei, parastiem lietotājiem to nepamanot. Izmantojot šos pieprasījumus, uzbrucējs izmantos nevainīgā lietotāja sesiju un apies CSRF pārbaude.

Lai skaidrāk izprastu šo uzbrukuma scenāriju, uzskatiet, ka HTML ir šāds kods saturs, ko lietotājam nosūtījis uzbrucējs (punkts) com:

stils ="augstums: 1px; platums: 1px;" dati="www.target-site.com/images/image.jpeg" tips="aplikācija/x-shockwave-flash" atļaujapiekļuve="vienmēr" flashvars="c=lasīt&u = kaut kas"

Viens no labākajiem risinājumiem ir piekļūt failiem, kas augšupielādēti ar failu augšupielādi, izmantojot cits apakšdomēns. Iepriekš minētajā scenārijā statiskajiem failiem varat piekļūt nevis no tā paša domēna, bet gan no cita apakšdomēna šādi: "http (kols)//file.target-site (punkts) com/images/image.jpeg".

Vēl viens risinājums ir pievienot Saturs-Izkārtojums: pielikums informāciju HTTP atbildei, kad saņemat pieprasījumu piekļūt failiem, kurus vēlaties augšupielādēt.

Veiciet piesardzības pasākumus failu augšupielādes ievainojamību gadījumā

Jebkura failu augšupielāde, ko lietotāji var veikt vietnē, ir bīstama, tāpēc šī ir viena no problēmām, kurai izstrādātājiem būtu jāpievērš vislielākā uzmanība. Ja uzbrucēji atklāj šādu ievainojamību, viņi var vietnē atvērt čaulu un viegli izmantot serverī esošo informāciju. Ir ļoti svarīgi kontrolēt visus lietotāju augšupielādētos failus, lietot baltā saraksta metodes un, ja iespējams, paslēpt augšupielādētā direktorija atrašanās vietu.

Un, protams, ir jāveic daudzas citas papildu darbības, lai aizsargātu savu vietni, pat ja veicat visus ieteiktos piesardzības pasākumus, lai augšupielādētu failu moduļus. Viens no šādiem soļiem ir HTTP drošības galveņu izmantošana.