Мерки за защита на PHP скриптовете при изработка и програмиране на web сайт
Съвременното програмиране при изграждане и изработка на диманичен уеб сайт, които позволява различни действия от страна на потребителите, обработка на данни, извличане на информация и прочее, налага изключително качество и старание на писане на програмния код. Уеб агенциите обикновено често прилагат различни модерни съвременни практики при писане на PHP код, но ако вие все още сте начинаещ в изработката на уеб сайтове, е добре да се запознаете с основните правила на сигурност преди да се впуснете е програмиране на сериозни приложения и апликации за Web.
Техниките за защита от атаки при въвеждане на данни от потребителите са прости, но значително повишават сигурността и са задължителна мярка за едно добре конструирано Web приложение.
Изключване на register_globals. Ползите, които носи активирането на тази опция са минимални, а опасностите – оргомни, така че забравете за нея;
Задаване на най-висока стойност на error_repor-ting. Тази директива определя за кои типове грешки се издават предупреждения по време на изпълнение на скрипта. При най-високото ниво, а именно
error_reporting(E_ALL | E_STRICT);
се издават съобщения за всички възникващи грешки. Задължително е поне по време на разаботването на приложението тази опция да е активирана;
Филтриране на входните данни. Предпазването от враждебни клиентски скриптове и инжектиран SQL е елементарно – достатъчно е да се ескейпират (да се постави \ пред) всички кавички и апострофи в клиентските данни. Това може да се направи с прилагането на ф-ята addslashes() върху всеки потребителски вход, или с активирането на конфигурационния парам. magic_ quotes_gpc, който автоматизира този процес. Добре е също така над въвежданите от потребителя данни да се приложи функцията strip_tags(), която премахва всички тагови скоби от подадения текст;
Валидиране на входните данни. Добра идея е да се проверява валидността на вх. данни. Ако очакваме като вход числова величина (номер на потреб. напр.), добре е да се провери дали е въведено число, ако очакваме файл – дали такъв съществува и т.н. Задължи-телно е също така когато очакваме парам. от URL, да се проверява (обикновено с isset()) дали такива са коректно подадени;
Криптиране на данните и паролите. Когато се предават конфиденциални или критични за приложението данни (особено през URL), най-добре е те да бъдат криптирани. Паролите за достъп да приложението, базата данни и др. се съхраняват задължително крип-тирани с необратим хеш-метод като MD5 или SHA1, което лесно се прави с вградените функции md5() и hsa1(). Тогава дори защитата да бъде пробита и хакерът да види списъка с потребители и техните пароли, той е безполезен, защото нормалния вид на паролата не може да бъде възстановен.
Проверката за правилно въведена парола в такъв случай се прави след прилагане на същата хеш-функция, с която е записана съхранената парола, върху въведеното от потребит.:
if( sha1($str) === ‘d0be2dc421be4fcd0172e5afceea3970e2f3d940′)
Сходни статии:
- Уеб дизайн и изработка на сайт като бизнес или забавление Да знаете как да изработите качествено един уеб сайт, независимо дали за бизнес или забавление, е изключително важно умение. Има много web сайтове, в които е обяснено как, но малко...
- Изработка на фирмен сайт стъпка по стъпка от фирмите за уеб дизайн услуги Уеб сайт, ориентиран към презентиране и промотиране на бизнеса или портал за забавления? Как да изградим уебсайт и какъв модел да изберем? Може би вече търсите изпълнител, който да изгради...
- Програмиране и използване на компютри. Програмиране на С++ Условие на задачата: Дадени са четири таблици,в които са записани цели шест цифрени положителни числа. Таблиците имат M реда и N колони(3 ≤ M≤10 и 3≤ N≤5).Напишете програма, с която...
- Функционално програмиране Функционални езици Основи математически функции и ג-смятането метод за дефиниране на функции без име – lambda функции (Alonzo Church, 1941) Особености не използват променливи и оператори за присвояване ⇒ итеративните...
- Програмиране на AVR-контролери Програмен модел Аритметическите и логическите операции се изпълняват от така нареченото Аритметично-логическо устройство (АЛУ). То има два входа и един изход. На входовете се въвеждат операндите, а на изхода се...