6 основни съвета за сигурност, за да защитите вашия PHP уебсайт от хакери

Вашият PHP сайт е стартиран. Честито! Но изчакайте.. погрижихте ли се за основното втвърдяване на сигурността?

PHP е лек, но много мощен backend език за програмиране. Той захранва около 80% от глобалните уеб приложения, което го прави един от най-често използваните езици в света на разработката.

Причината за популярността и широкото му използване е неговата лесна структура за кодиране и лесни за разработчици функции. Има много CMS и рамки, изградени върху PHP, и хиляди известни разработчици от цял ​​свят са редовна част от неговата общност.

Един чудесен пример е WordPress.

Когато PHP приложенията се внедряват на живи сървъри, може да се изправи пред няколко случая на хакерство и уеб атаки, което прави данните от сайта му изключително уязвими за кражба. Това е една от най-обсъжданите теми в общността как да се изгради напълно сигурно приложение, като се спазват всички основни цели на проекта.

Въпреки усилията си, разработчиците винаги внимават за скритите вратички, които остават незабелязани, докато разработват приложение. Тези вратички могат сериозно да компрометират защитата на жизненоважни данни за сайтове на всеки уеб хостинг за PHP MySQL приложения, оставяйки ги уязвими за опити за хакване.

И така, тази статия е за някои полезни съвети за сигурност на PHP, които можете да използвате разумно във вашите проекти. Използвайки тези малки съвети, можете да се уверите, че вашето приложение винаги стои високо при проверките за сигурност и никога не е компрометирано от външни уеб атаки.

Междусайтови скриптове (XSS)

Cross-Site Scripting е една от най-опасните външни атаки, извършвани чрез инжектиране на злонамерен код или скрипт в уебсайта. Това може да повлияе на ядрата на вашето приложение, тъй като хакерът може да инжектира всякакъв тип код във вашето приложение, без дори да ви даде намек. Тази атака се случва най-вече в онези уебсайтове, които приемат и изпращат потребителски данни.

  Всичко, което един маркетолог трябва да знае

При XSS атака инжектираният код замества оригиналния код на вашия уебсайт, но работи като действителен код, нарушавайки работата на сайта и често крадейки данните. Хакерите заобикалят контрола на достъпа на вашето приложение, получавайки достъп до вашите бисквитки, сесии, история и други жизненоважни функции.

Можете да противодействате на тази атака, като използвате HTML специални знаци и ENT_QUOTES в кодовете на приложението си. С помощта на ENT_QUOTES можете да премахнете опциите за единични и двойни кавички, което ви позволява да премахнете всякаква възможност за скриптова атака между сайтове.

Фалшифициране на заявки между сайтове (CSRF)

CSRF предоставя пълен контрол върху приложението на хакерите, за да извършат всяко нежелано действие. С пълен контрол хакерите могат да извършват злонамерени операции, като прехвърлят заразен код на вашия уебсайт, което води до кражба на данни, функционални модификации и т.н. Атаката принуждава потребителите да променят конвенционалните заявки с променени разрушителни, като прехвърляне на средства несъзнателно, изтриване цялата база данни без никакво уведомление и т.н.

CSRF атаката може да бъде инициирана само след като щракнете върху прикритата злонамерена връзка, изпратена от хакера. Това означава, че ако сте достатъчно умни, за да разберете заразените скрити скриптове, можете лесно да изключите всяка потенциална CSRF атака. Междувременно можете също да използвате две защитни мерки, за да подсилите сигурността на приложението си, т.е. като използвате GET заявките във вашия URL адрес и гарантирате, че не-GET заявките се генерират само от вашия код от страна на клиента.

  Как DNS през HTTPS (DoH) ще повиши поверителността онлайн

Отвличане на сесия

Отвличането на сесия е атака, чрез която хакерът открадва идентификатора на вашата сесия, за да получи достъп до желания акаунт. Използвайки този ID на сесията, хакерът може да потвърди сесията ви, като изпрати заявка до сървъра, където масив $_SESSION валидира нейното време за работа, без да знае за вас. Може да се извърши чрез XSS атака или чрез достъп до данните, където се съхраняват данните от сесията.

За да предотвратите отвличане на сесии, винаги свързвайте сесиите си с действителния си IP адрес. Тази практика ви помага да анулирате сесии, когато възникне неизвестно нарушение, като незабавно ви уведомява, че някой се опитва да заобиколи вашата сесия, за да получи контрола на достъпа на приложението. И винаги помнете, че при никакви обстоятелства не излагайте личните си данни, тъй като това може по-късно да компрометира самоличността ви с друга атака.

Предотвратяване на атаки чрез SQL инжектиране

Базата данни е един от ключовите компоненти на приложение, което най-често става насочено от хакери чрез SQL инжектиране. Това е вид атака, при която хакерът използва конкретни URL параметри, за да получи достъп до базата данни. Атаката може да бъде направена и чрез използване на полета на уеб формуляри, където хакерът може да промени данните, които предавате чрез заявки. Променяйки тези полета и заявки, хакерът може да получи контрол върху вашата база данни и може да извърши няколко катастрофални манипулации, включително изтриване на цялата база данни на приложението.

За да предотвратите атаки чрез SQL инжектиране, винаги се препоръчва да използвате параметризирани заявки. Тези PDO заявки правилно заместват аргументите, преди да изпълнят SQL заявката, ефективно изключвайки всякаква възможност за атака чрез SQL инжектиране. Тази практика не само ви помага да защитите вашите SQL заявки, но и ги прави структурирани за ефективна обработка.

  Можете ли да вземете повторно теста на Pottermore House?

Винаги използвайте SSL сертификати

За да получите защитено предаване на данни от край до край по интернет, винаги използвайте SSL сертификати във вашите приложения. Това е световно признат стандартен протокол, известен като Hypertext Transfer Protocol (HTTPS) за безопасно предаване на данни между сървърите. Използвайки SSL сертификат, вашето приложение получава защитен път за пренос на данни, което почти прави невъзможно хакерите да проникнат във вашите сървъри.

Всички основни уеб браузъри като Google Chrome, Safari, Firefox, Opera и други препоръчват използването на SSL сертификат, тъй като той предоставя криптиран протокол за предаване, получаване и дешифриране на данни по интернет.

Скриване на файлове от браузъра

Има специфична структура на директория в микро PHP рамките, която гарантира съхранението на важни файлове на рамката като контролери, модели, конфигурационния файл (.yaml) и т.н.

През повечето време тези файлове не се обработват от браузъра, но остават видими в браузъра за по-дълъг период, създавайки пробив в сигурността на приложението.

Затова винаги съхранявайте файловете си в публична папка, вместо да ги държите в основната директория. Това ще ги направи по-малко достъпни в браузъра и ще скрие функционалностите от всеки потенциален нападател.

Заключение

PHP приложенията винаги са уязвими на външни атаки, но като използвате съветите, споменати по-горе, можете лесно да защитите ядрата на вашето приложение от всякакви злонамерени атаки. Като разработчик, ваша отговорност е да защитите данните на уебсайта си и да го направите без грешки.

Освен тези съвети, много техники могат да ви помогнат да защитите вашето уеб приложение от външни атаки, като например използването на най-доброто решение за облачен хостинг, което гарантира, че имате оптимални функции за сигурност, облачен WAF, настройка на основния документ, бели списъци на IP адреси и др.