8 начина за защита на вашия уеб приложение
Когато става въпрос за приложения за сигурност, важно е да се грижи не само за системата на хардуер и операционна, но също така и от защита, за писане на скриптове. В тази статия ще научите как да се осигури вашата кандидатура и да я направи по-малко уязвим. По-долу е даден списък от мерки, които ще ви помогнат да защитите вашата кандидатура от всички видове атаки:
- Потвърждаване на входящи данни
- Защита срещу XSS атаки
- Защита от CSRF атаки
- Предотвратяване на SQL инжекция
- Защитата на файловата система
- Декларация за поверителност на сесията
- Работа грешка
- Защита на включване на файлове
Потвърждаване на входящи данни
Защита срещу XSS атаки
Cross-сайт скриптове, или XSS атака - атака на базата на изпълнението на код за потенциално уязвими страници. Опасността е, че зловредния код може да бъде въведен чрез формата, а след това се показва в браузъра.
За да се защити вашите приложения, пропуснете постъпващите данни чрез strip_tags () функция. което ще премахне всички тагове налице. Когато се показват данни в браузъра, използвайте htmlentities () функция.
Защита от CSRF атаки
Следващият вид атака, която ще го погледнете CSRF атаки или искане крос-сайт фалшифициране. Нападателят използва различни трикове, за да получат поверителна информация или сделка без съгласието на жертвата. Това се дължи основно слабо защитени местности, където бизнес логика се основава на исканията за GET.
Най-общо казано, да получите искания са idempotent. Idempotency, в този контекст означава, че достъп до една и съща страница може да се извърши неограничен брой пъти, без никаква външна намеса. Ето защо исканията GET трябва да се използват само за да получат достъп до информация, но в никакъв случай да не се извършват различни видове операции.
Този пример показва как незащитен сайт може да подлежи на CSRF атака:
Браузърът не може да се покаже тази снимка, защото тя не съществува, но искането ще бъде извършено без знанието или участието на Алис.
Както се предотврати този вид атака, използвайте само искания пощата на процеса за промяна на информацията в базата данни. Не използвайте $ _REQUEST. Използвайте $ _GET ти да се справят GET параметри и $ _POST за извличане на параметрите на POST.
Като допълнителни мерки могат да генерират някакъв уникален знак и да го прикрепите към всяка заявка POST. Когато един потребител се регистрира в системата, можете да генерирате случаен знак и ще го напиша в сесията. Тъй като всички форми са показва на потребителя, означението трябва да се запише в скрито поле. трябва да се предоставя функционалност бизнес логика за прилагане, който ще провери белегът на формите и логика, съхранени в сесията.
Предотвратяване на SQL инжекция
За да сверки с базата данни да се използват ЗНП. Поради параметризирани заявки и подготвени изказвания, вие може да неутрализира заплахата от SQL инжекция.
Нека разгледаме следния пример:
Кодът представено по-горе, изпратете запитване за подготовка () метод. включително името на параметъра. име и: възраст. Така, заявката предварително съставен данни за по-нататъшно заместване. Когато се обаждате метод изпълнение (). заявката е напълно оформен и екзекутиран. Ако използвате подобна техника, а след това всички на нападателя се опитва да изпълни SQL инжекция ще бъде сведен до нула.
Защитата на файловата система
Като отговорен предприемач, винаги трябва да пишат код, който не се поставя под риск от вашата файлова система. Нека да разгледаме кода, който дава скок в зависимост от предаваните данни за потребителя на файла.
Този скрипт е много опасно, защото на него можете да получите достъп до директория, която е достъпна от файл със сценария: директорията на сесиите, системните папки и др.
Декларация за поверителност на сесията
По подразбиране всички информационни сесии, се записва в директорията на темп. Ако използвате виртуален хостинг, някой освен вас може да напише сценарий и чете данните от сесията. Затова пазете се съхранява пароли или номера на кредитни карти в сесиите.
Ако все пак се налага да съхранявате тези данни в сесията, най-добрата мярка е криптиране. Тя не решава проблема до края, тъй като на криптирана информация не е 100% сигурно, но съхранява информацията ще бъде прочетен. Също така, трябва да мисля за това, че данните за сесиите може да се съхранява на друго място, като база данни. PHP е метод на специален session_set_save_handler (). който ви позволява да съхранявате данните за сесиите по свой собствен начин.
Започвайки с PHP 5.4, можете да мине обект от тип SessionHandlerInterface в session_set_save_handler ().
Работа грешка
По време на разработката на приложения, трябва да се обърне внимание на всички видове грешки, които могат да се появят, обаче, те трябва да се скрие от крайните потребители. Ако грешките се показват на потребителите, след което го прави сайта си уязвим. По този начин, най-доброто решение би било различна конфигурация за целевия сървър и сървър за развитие.
На публичен сървър трябва да деактивирате опции като display_errors и display_start_up_errors. но опции като error_reporting и log_errors. Трябва да бъдете активни, така че всякакви грешки в потребителите, регистрирани в трупите.
Можете да използвате "set_error_handler", за да определите своя манипулатор грешка. Въпреки това, може да има ограничения, за собствения си манипулатор дава роден PHP двигателя. E_CORE_ERROR грешки. E_STRICT или E_COMPILER_ERROR не могат да бъдат уловени в един и същи файл, а когато даден процесор. Освен това, грешките, които могат да се появят в манипулатор и не могат да бъдат уловени.
За по-елегантен начин за залавяне изключения, опасен код трябва да бъде поставен в блок пробвам / улов. Всички изключения трябва да бъдат свои собствени класове от обекти или подкласове на изключение. Ако изключения са били хвърлени, блок пробвам / улов може да бъде обработена.
Защита на включване на файлове
Ако следвате правилата, изброени 8, то до голяма степен ще засили стабилността на вашето приложение за различни видове атаки. Не се доверявайте на данните, въведени от потребителя, защита на вашите файлове и данни.
До получаване на информация от два канала (зрение и слух) на ефективността на обучението далеч по-добър живот от книги. А домашните задачи и онлайн тестове ще ви позволи да мисля постоянно в целевия език и веднага провери знанията си!
Ако искате по-дълго време, за да проучи как да се HTML, че ме има, за което трябва добра новина!
Ако вече сте се научили HTML и искат да се движи напред, следващата стъпка ще бъде да се проучи CSS технологията.
Ако искате да се разбере концепцията на домейн и хостинг, да научат как да се създаде база данни, да качвате файлове към уеб сайт чрез FTP сървър, създаване на поддомейни, да конфигурирате пощенските кутии за сайта и мониторинг на посещаемостта, този курс е разработен специално за вас!