6 основних безбедносних савета за заштиту ваше ПХП веб локације од хакера

Ваша PHP веб страница је активна. Честитамо! Међутим, да ли сте осигурали основну сигурност?

PHP је једноставан, али изузетно моћан програмски језик на страни сервера. Покреће око 80% светских веб апликација, што га чини једним од најраспрострањенијих језика у развоју.

Разлог његове популарности и распрострањене употребе лежи у његовој једноставној структури кодирања и функцијама прилагођеним програмерима. Постоји мноштво CMS-ова и оквира заснованих на PHP-у, а хиљаде познатих програмера широм света редовно учествује у његовој заједници.

Одличан пример је WordPress.

Када се PHP апликације примењују на серверима уживо, могу бити подложне различитим нападима хакера, чинећи податке ваше веб странице изузетно рањивим на крађу. Питање како направити потпуно сигурну апликацију, истовремено одржавајући све кључне циљеве пројекта, једна је од најчешће дискутованих тема у заједници.

Упркос свим напорима, програмери увек остају на опрезу због скривених пропуста који остају непримећени током развоја апликације. Ови пропусти могу озбиљно угрозити заштиту виталних података сајта на било ком веб хостингу за PHP и MySQL, чинећи га рањивим на покушаје хаковања.

Стога, овај чланак представља корисне савете за безбедност PHP-а које можете применити у вашим пројектима. Користећи ове једноставне савете, можете осигурати да ваша апликација има висок ниво сигурносних провера и да не буде угрожена спољним веб нападима.

Скриптовање на више локација (XSS)

Cross-Site Scripting (XSS) је један од најнезгоднијих спољних напада који се изводи убацивањем злонамерног кода или скрипте на веб страницу. То може утицати на језгро ваше апликације, јер хакер може убацити било коју врсту кода у вашу апликацију, а да то и не приметите. Овај напад се углавном дешава на веб локацијама које прихватају и размењују корисничке податке.

У XSS нападу, убачени код замењује оригинални код ваше веб странице, али делује као легитимни код, што ремети перформансе сајта и често доводи до крађе података. Хакери заобилазе контролу приступа вашој апликацији, добијајући приступ вашим колачићима, сесијама, историји и другим кључним функцијама.

Можете се одбранити од овог напада користећи HTML посебне знакове & ENT_QUOTES у коду апликације. Коришћењем ENT_QUOTES, можете уклонити једноструке и двоструке наводнике, елиминишући тако сваку могућност XSS напада.

Фалсификовање захтева на више локација (CSRF)

CSRF хакерима даје потпуну контролу над апликацијом, омогућавајући им да извршавају нежељене радње. Са потпуном контролом, хакери могу извршавати злонамерне операције преношењем зараженог кода на вашу веб страницу, што доводи до крађе података, функционалних модификација итд. Напад приморава кориснике да промене конвенционалне захтеве у измењене деструктивне, као што су ненамерни трансфери средстава или брисање целе базе података без икаквог обавештења.

CSRF напад се покреће када кликнете на прикривену злонамерну везу коју је послао хакер. То значи да ако сте довољно пажљиви да препознате заражене скрипте, лако можете спречити потенцијални CSRF напад. Такође, можете користити две заштитне мере да побољшате безбедност ваше апликације: коришћењем GET захтева у URL-у и обезбеђивањем да се захтеви који нису GET генеришу само из вашег кода на страни клијента.

Отмица сесије

Отмица сесије је напад где хакер краде ваш ID сесије да би добио приступ вашем налогу. Користећи тај ID сесије, хакер може потврдити вашу сесију слањем захтева серверу, где низ $_SESSION потврђује време рада без вашег знања. То се може извршити путем XSS напада или приступом подацима где се чувају подаци о сесији.

Да бисте спречили отмицу сесије, увек повежите своје сесије са вашом стварном IP адресом. Ова пракса вам помаже да поништите сесије кад год дође до непознатог кршења, одмах вас обавештавајући да неко покушава да заобиђе вашу сесију да би добио приступ апликацији. И запамтите да не откривате личне карте у било којим околностима, јер то може угрозити ваш идентитет касније.

Спречите нападе SQL ињекције

База података је кључна компонента апликације која је углавном на мети хакера путем SQL ињекције. То је врста напада где хакер користи URL параметре да би добио приступ бази података. Напад се може извршити и преко поља веб форме, где хакер може да измени податке које прослеђујете путем упита. Мењајући та поља и упите, хакер може да преузме контролу над вашом базом података и изврши манипулације, укључујући и брисање целе базе података.

Да бисте спречили нападе SQL ињекције, препоручује се да користите параметризоване упите. Ови PDO упити исправно замењују аргументе пре покретања SQL упита, елиминишући сваку могућност напада SQL ињекцијом. Ова пракса не само да помаже у обезбеђивању ваших SQL упита, већ их чини структурираним за ефикасну обраду.

Увек користите SSL сертификате

Да бисте осигурали безбедан пренос података од краја до краја преко интернета, увек користите SSL сертификате у вашим апликацијама. То је глобално признати стандардни протокол познат као Hypertext Transfer Protocol Secure (HTTPS) за безбедан пренос података између сервера. Користећи SSL сертификат, ваша апликација добија сигуран пут за пренос података, што готово онемогућава хакере да упадну на ваше сервере.

Сви главни веб претраживачи као што су Google Chrome, Safari, Firefox, Opera и други препоручују коришћење SSL сертификата јер обезбеђује шифровани протокол за пренос, пријем и дешифровање података преко интернета.

Сакријте датотеке од претраживача

У PHP микро-оквирима, постоји одређена структура директоријума, која омогућава складиштење важних датотека оквира, као што су контролери, модели, конфигурациони фајлови (.yaml) итд.

Већину времена ове датотеке не обрађује претраживач, али се оне могу видети у прегледачу, што представља сигурносни пропуст за апликацију.

Стога, увек чувајте своје датотеке у јавној фасцикли, уместо да их држите у основном директоријуму. Ово ће их учинити мање доступним у претраживачу и сакрити функционалности од потенцијалних нападача.

Закључак

PHP апликације су увек рањиве на спољне нападе, али користећи горе наведене савете, можете лако заштитити језгро своје апликације од било каквих злонамерних напада. Као програмер, ваша је одговорност да заштитите податке своје веб странице и учините је без грешака.

Поред ових савета, постоје и бројне друге технике које вам могу помоћи да заштитите своју веб апликацију од спољних напада, као што су коришћење најбољег решења за хостовање у облаку које пружа оптималне сигурносне функције, WAF у облаку, подешавање корена документа, стављање IP адреса на белу листу и још много тога.