Осигурајте свој ПХП код
![](http://img.brin-designs.com/img/games/149/secure-your-php-code.png)
- Кључно је осигурати сигурне податке од корисника (форме и УРЛ-ове итд.) Осим ОС сервера и хттп сервера углавном због веб напада.
- Постоје 3 категорије за обезбеђивање вашег пхп кода:
Валидација корисника података
Када сајт нуди обрасце који дозвољавају корисницима да сниме и пошаљу садржај, то није довољно да означи формат уноса (е-маил адреса, телефонски број, количина производа). Сервер такође треба да се надгледа (нпр. ПХП) ако су подаци уобичајено за наша очекивања. Узимајући у обзир све бројеве, конвертујте све податке које шаље корисник:
Потврдите податке из УРЛ-а или образаца
Скоро сви примљени подаци су из УРЛ-а или образаца које је вебмастер поставио. Скоро сви параметри УРЛ-а приказују доле:
/индек.пхп?руб=25
Међутим, овај параметар не треба мењати. Али то је могуће као испод:
/индек.пхп?руб=0 /индек.пхп?руб=/индек.пхп?руб=ааааАААААаааа /индек.пхп?руб=1+ор+1
- Од кључног је значаја да проверите да ли се формат који се прима преко УРЛ-а или форме очекује без обзира на врсте података.
- Можете користити функцију филтер_инпут () да бисте потврдили исто.
- На пример, ако сте примили е-поруку од корисника из формата пост са именом поља као е-маил. Исто можете опоравити тако што ћете:
$ емаил = филтер_инпут (ИНПУТ_ПОСТ, 'е-пошта', ФИЛТЕР_ВАЛИДАТЕ_ЕМАИЛ); иф ($ емаил) {// Унос адресе е-поште је заиста формат адресе поште}
Ова функција може филтрирати многе ствари: ИП адресу, УРЛ итд. Могу се вршити модификације као што је кодирање низа прије слања кроз УРЛ као процес хтмлентитиес ().
- Неколико филтера се може комбиновати помоћу "|" .
- Да бисте потврдили ИП адресу само у Ипв4 формату:
$ ип = филтер_инпут (ИНПУТ_ГЕТ, 'ип', ФИЛТЕР_ВАЛИДАТЕ_ИП | ФИЛТЕР_ФЛАГ_ИПВ4);
Кликните на следећи линк за филтере:
//ввв.пхп.нет/филтер
Прескочи приказани садржај УРЛ-а
Када се на екрану прикаже садржај који корисник унесе, он садржи ХТМЛ или ЈаваСцрипт код који, међутим, чини обавезну заштиту.
Ако се садржај приказује у хтмл-у: морате ХТМЛ кодирати поставку за конвертовање свих знакова у еквивалентне ХТМЛ ентитете. Испод је пхп функција за аутоматизацију овог процеса:
ецхо хтмлентитиес ($ _ РЕКУЕСТ ['цонтент']);
Ако би садржај требао бити приказан у УРЛ-у: морате урленкодирати садржај.
ПХП има две функције за ово кодирање: урленцоде () и равурленцоде (). Разлика између ове двије функције је кодирање подручја, које у првој функцији даје и даје% 20 и "+" у другом.
ецхо '//ввв.вебсите?валеур='.урленцоде($_РЕКУЕСТ['валуе']);
Ако би садржај требао бити похрањен у бази података: потребно је избјећи све знакове с одређеном улогом у послужитељу базе података. За ПХП и МиСКЛ, функција мискл_есцапе_стринг () чини све потенцијално штетне знакове у низу који се преноси као параметар.
$ куери = 'СЕЛЕЦТ ид ФРОМ матабле ВХЕРЕ усер = "'. мискл_есцапе_стринг ($ _ РЕКУЕСТ ['усер'])." "';
Имајте на уму да је сервер конфигурисан са ПХП опцијом магиц_куотес, подаци које преносе корисници су аутоматски заштићени обрнутим косим цртама (бацксласх). Дакле, пре заштите мискл_есцапе_стринг, требало би да "поништите" ову основну заштиту:
$ куери = 'СЕЛЕЦТ ид из митабле ВХЕРЕ усер = "'. стрипсласхес (мискл_есцапе_стринг ($ _ РЕКУЕСТ ['усер']))." "';