Модули за отпремање датотека су једна од најслабијих карика у веб апликацијама. Свака учињена грешка, чак и она за коју сматрате да су мале, може довести до тога да контрола сервера падне директно у руке сајбер нападача. Из тог разлога, програмери софтвера морају да знају најчешће грешке и неке методе напада до којих може доћи.
Дакле, шта је петљање на страни клијента? Како можете да се борите против овога да бисте своје веб локације и кориснике очували безбедним?
Шта је манипулисање на страни клијента?
Ометање на страни клијента је основни концепт напада на веб апликације у целини. Једноставно речено, то значи да више не можете веровати ниједном од података које шаљете кориснику. Поред тога, манипулисање на страни клијента је један од темеља безбедног развоја апликација. Ако испитате модул за отпремање датотека са којим имате посла и размислите о манипулисању на страни клијента, подаци којима не можете веровати укључују:
- Назив отпремљене датотеке.
- Тип садржаја отпремљене датотеке.
Ове две ставке су где имате прилику да ставите на белу листу као програмер софтвера. Подаци о називу отпремљене датотеке могу садржати било шта са неовлашћеним приступом на страни клијента. Са подацима типа садржаја отпремљене датотеке, чак и ако нападач отпрема .еке датотеку, ова датотека се може појавити као слика/јпег у систему.
Екстензија датотеке и бела листа
Док развијате модуле за отпремање датотека, прва ствар коју треба да урадите је процес стављања на белу листу за екстензију датотеке. На пример, корисник жели да отпреми датотеку под називом „муо.јпег“. Морате бити сигурни да је екстензија датотеке коју корисник жели да отпреми .јпег. За ово, систем треба да провери отпремљену датотеку и види да ли је то једна од дозвољених екстензија датотеке. Да бисте разумели како то можете да урадите, испитајте следећи једноставан ПХП код:
$филе_партс = патхинфо($филенаме);
прекидач($филе_партс['ектенсион'])
{
случај "јпг":
пауза;случај "шишмиш": // Или еке, длл, со, итд.
пауза;
случај "":
случајНУЛА: // Нема екстензије датотеке
пауза;
}
То можете учинити са блоком кода сличним оном изнад, или можете користити класе и функције које пружа оквир који користите.
Пазите да не креирате податке о екстензијама датотеке тако што ћете анализирати име датотеке према знаку тачке (.), јер нападач може заобићи овај корак провере са именом датотеке као што је „муо.јпег.пхп“.
Шта су информације о типу садржаја?
Информације о типу садржаја су део информације који се шаље у ХТТП захтеву за свако отпремање датотеке. Интернет претраживач открива ове информације и додаје их послатом захтеву. Нападач може да покуша да промени информације неовлашћеним приступом на страни клијента и заобиђе валидације на страни сервера. У овој фази, програмерима је потребан контролни механизам за проверу информација о типу садржаја. Само ово неће бити довољно; ипак, то је важно питање на које програмери треба да обрате пажњу.
Рецимо да кодирате механизам за исправну проверу екстензије датотеке и прихватате само датотеке са екстензијом .јпег. Поред овог механизма предострожности, можете проверити информације о типу садржаја случају и прихватају само датотеке са сликовним/јпег информацијама, додатни ниво заштите од сајбер напади
СВФ Фласх датотеке и кораци за напад
Екстензија датотеке и подаци типа садржаја не значе ништа за интернет претраживаче који подржавају додатке као што је Адобе Фласх Плаиер. Иако подршка за тај плејер више није доступна, још увек је могуће инсталирати те повезане датотеке на многе системе, иако Фласх остаје безбедносни ризик. У систему који није предузео одговарајуће мере предострожности, могуће је позвати Фласх датотеку са
Да би предузели акцију, програмери морају да знају путеве којима сајбер криминалци могу да иду. Ево како се то може десити:
- Злонамерни нападач отпрема СВФ (Адобе Фласх формат датотеке) под називом „имаге.јпег“ на циљну веб локацију. Током процеса отпремања, у верификацији беле листе потврђује се да датотека коју је отпремио нападач има екстензију .јпег. Верификација типа садржаја се заобилази неовлашћеним приступом на страни клијента. Замислите да ова датотека, коју је отпремио актер претње, иде на „ввв (тачка) таргет-сите (тачка) цом/имагес/имагес.јпег“.
- Рецимо да нападач има веб локацију под називом нападач (тачка) цом. Нападач позива датотеку имаге.јпег отпремљену на циљну локацију на овој веб локацији, користећи
- Невин корисник се пријављује на нападач (тачка) цом. Та локација позива СВФ датотеку на ввв (тачка) циљна локација (тачка) цом/имагес/имаге.јпег и извршава команде дате СВФ-у.
- На овај начин, сајбер нападач може креирати радње ХТТП захтева за цом адресу циљног сајта (тачка), а да нормални корисници то не примете. Са овим захтевима, нападач ће користити сесију невиног корисника и заобићи ЦСРФ провера.
Да бисте јасније разумели овај сценарио напада, узмите у обзир следећи код у ХТМЛ-у
стиле="висина: 1пк; ширина: 1пк;" дата="ввв.таргет-сите.цом/имагес/имаге.јпег" типе="апликација/к-схоцкваве-фласх" алловсцриптаццесс="увек" фласхварс="ц=читај&у=нешто"
Једно од најбољих решења је приступ датотекама које су отпремљене уз отпремање датотека путем другачији поддомен. У горе поменутом сценарију, статичким датотекама можете приступити не са истог домена, већ са другог поддомена на следећи начин: „хттп (двотачка)//филе.таргет-сите (тачка) цом/имагес/имаге.јпег“.
Друго решење је додавање Садржај-Диспозиција: прилог информације у ХТТП одговору када примите захтев за приступ датотекама које желите да отпремите.
Предузмите мере предострожности за рањивости при отпремању датотека
Свако отпремање датотека које корисници могу да направе на веб локацију је опасно, тако да је ово једно од питања на које програмери треба да обрате највећу пажњу. Ако нападачи открију такву рањивост, могу отворити љуску унутар сајта и лако искористити информације на серверу. Од виталног је значаја да контролишете све датотеке које отпремају корисници, примените методе беле листе и сакријете локацију отпремљеног директоријума ако је могуће.
И наравно, постоји много других додатних корака које морате предузети да бисте заштитили своју веб локацију, чак и ако предузмете све препоручене мере предострожности за отпремање модула датотека. Коришћење ХТТП безбедносних заглавља је један такав корак који можете предузети.