Utaratibu wa kupokea faili kutoka kwa watumiaji ni rahisi, lakini ikiwa haujaundwa vizuri inaweza kuwa na udhaifu mkubwa. Wavamizi wanaweza kutumia upakuaji vibaya ili kutekeleza msimbo wa kibinafsi, kuzuia uwezo wa seva, au kusambaza faili zisizofaa.
Hatari maarufu ni kama ifuatavyo:
Msingi wa mbinu za kujikinga ni "Ulinzi wa Mifereji (defense in depth)". Usitegemee mbinu moja, badala yake, ubuni safu nyingi za ulinzi.
Panua mifano inayoruhusiwa pekee, na usikubali faili zinazokubalika kutokana na ugani pekee. Thibitisha saini ya faili (nambari ya uchawi) ili kuthibitisha yaliyomo. Usitegemee kichwa cha Content-Type, na thibitisha njia za kukwepa kama ugani wa mbili au byte ya NULL.
Usihifadhi jina la faili kama lilivyo kutoka kwa mtumiaji. Badilisha kuwa jina la kipekee kwa kutumia UUID au hash pamoja na alama ya wakati, na uhifadhi jina la faili la asili kama metadata kupitia mbinu salama. Punguza wahifadhi wa herufi maalum na mipaka ya urefu.
Faili zilizopakuliwa zinapaswa kuhifadhiwa nje ya eneo la wavuti ili isitekelezeke moja kwa moja. Ikiwezekana, uhifadhi kwenye hifadhi ya vifaa maalum (mfano: S3) na utoe kiungo cha kupakua kupitia programu. Hakikisha folda ya uhifadhi haipati ruhusa ya kutekeleza na kuweka ruhusa ya kusoma/kkuandika kuwa ndogo iwezekanavyo.
Seti mipaka ya ukubwa wa faili, na tengeneza udhibiti wa idadi ya upakuaji wa wakati mmoja na kiwango cha upakuaji ili kuthibitisha upatikanaji wa huduma. Ikiwa unakubali faili za kupakia (kama ZIP), hakikisha unakaguliwa kila faili baada ya kupakiwa.
Fanya skani ya virusi mara tu baada ya kupakua (ikiwezekana kwa injini kadhaa) na kufanyia maudhui kuwa salama kwa kutumia CDR (Kujitoa na Kujenga Tena). Picha zimefanyiwa upya kwa kupanga (kujaza → kuunda faili mpya) ili kuondoa data haramu iliyojumuishwa na inafaa.
Wasiliano lazima ihifadhiwe kwa TLS (HTTPS) na iwe na hatua za CSRF kama vile mkataba wa CSRF. Jibu la kupakua linapaswa kuwa na Content-Disposition: attachment
na X-Content-Type-Options: nosniff
ili kuzuia makosa ya kivinjari.
Tafuta ni nani, lini, na faili zipi ambazo zilihusika kwa kuandika kwa kina rekodi, na weka arifa kwa tabia zisizo kawaida (upakuaji wa mara kwa mara au idadi kubwa ya kukataa). Kuhifadhi hash pia ni muafaka kwa uthibitishaji wa faili.
Baada ya kutekeleza, fanya jaribio maalum la udhaifu kwa upakuaji wa faili (kuingiza shell, kuepuka ugani, upitaji wa njia, nk) na uhakiki marahaba kwa muda.
Pale tunapozungumzia UploadF (uploadf.com), inatoa ushirikiano wa kompyuta na simu, kuburuta na kuacha, na kupakuzi mara 100 ya wakati mmoja, ambayo ni rahisi, lakini kuna alama na mikakati inayoweza kuchukuliwa katika kubuni ya huduma.
Hatua za Kuangalia | Maelezo ya Kufanya/Kuthibitisha |
---|---|
Uchaguzi wa Orodha ya Kijani | Ruhusu mifano muhimu pekee. Tumia orodha ya kuzuia kama njia ya nyongeza. |
Uchambuzi wa MIME/Uthibitishaji wa Saini | Thibitisha kuwa ugani wa faili unashtakia na yaliyomo (thibitisha nambari ya uchawi). |
Rekebisha majina ya faili | Badilisha kuwa UUID au jina la hash na uhifadhi jina halisi kwa metadata. |
Ondoa herufi maalum | Ondoa au kataza `/, \, .., NULL` na kadhalika. |
Mahali pa kuhifadhi faili | Hifadhi nje ya eneo la wavuti au kwenye hifadhi ya vifaa. |
Ruhusa za folda | Zilazimisha zilizokatazwa, ruhusa za chini za kusoma/kandika (kanuni ya ruhusa ndogo). |
Ukubwa wa faili mkubwa na mdogo | Thibitisha mipaka na ukaguzi baada ya kunyoosha kwa ZIP au nyingine. |
Udhibiti wa upakuaji wa wakati mmoja | Thibitisha udhibiti wa idadi ya upakuaji, kiwango cha upakuaji, na mipangilio ya muda. |
Skani ya virusi/CDR | Fanya skani mara moja ya upakuaji na upaishwa ya vikwazo inapohitajika. |
Usimbaji wa mawasiliano (HTTPS) | Fanya TLS kuwa lazima (kuwalinda dhidi ya mashambulizi ya mtu wa katikati). |
Msingi wa CSRF | Ingiza udhibiti wa msingi wa token. |
Mipangilio ya kichwa cha jibu | Ongeza Content-Disposition: attachment , X-Content-Type-Options: nosniff , n.k. |
Rekodi za kumbukumbu na arifa | Angalia vitendo vya upakuaji na arifu kwa hali zisizo za kawaida. |
Mapitio ya usalama ya mara kwa mara | Tekeleza jaribio la udhaifu na uvunjaji mara kwa mara. |
Kuondoa faili za zamani kiotomatiki | Ubuni usimamizi wa uondoaji wa kamili baada ya muda wa kuhifadhi kupita. |
Udhibiti wa ufikiaji/ruhusa | Simamia ruhusa kwa ajili ya watumiaji au vikundi kwa makini. |
Fanya kazi ya upakuaji wa faili inashikilia faida na hatari. Kwa kudumu kuingiza ulinzi wa safu nyingi (orodha ya kijani, uchambuzi wa saini, kutenganisha maeneo, hatua za kujikinga dhidi ya programu hasidi, ukaguzi wa kumbukumbu, n.k.) hatari za shambulio zitapungua kwa kiasi kikubwa.
Ni muhimu kwa watumiaji kuhisi "ni rahisi kutumia, na pia ni salama". Kwa mfano, huduma kama UploadF (uploadf.com) inayo huduma za usimamizi kama uondoaji binafsi na mipangilio ya muda wa kuhifadhi, itawapa watumiaji hisia ya usalama.
※ Hii ni mifano ya vyanzo vilivyonukuliwa wakati wa kuandika makala. Tafadhali angalia nyaraka rasmi kwa maelezo ya kina ya utekelezaji na habari za hatari ya hivi karibuni.