З огляду на той факт, що злом деяких сайтів може принести чималу вигоду, а для того, щоб його здійснити, злочинцеві навіть не потрібно виходити з дому, можна зробити висновок, що злам сайту - дуже привабливу заняття для злочинця. На додаток до цього, зловмисники в інтернеті дуже рідко несуть покарання за свої діяння. Але для того, щоб зламати ресурс, хакер повинен знайти уразливості в його роботі. П'яти головним уязвимостям php і буде присвячена ця стаття.
SQL Injection
Дуже популярним методом злому сайту серед хакерів є вставка SQL фрагмента замість URL. В такому випадку зловмисник отримує доступ до імен ваших таблиць. Щоб уникнути такого злому, слід дуже уважно відстежувати всі дані, які надсилають вам користувачі. Для боротьби з такими зломами зазвичай застосовують PDO.
Cross site scripting
Так званий XSS теж є дуже популярним способом злому. Зловмисники впроваджують небезпечний код, зазвичай це JavaScript, в код вашого скрипта PHP. Це стає можливим в разі, коли відображені вхідні дані користувачів, які були послані вам з різних форм, блогів, форумів, чатів і т.д. Якщо в цих даних міститься шкідливий код, то ваш сайт може бути зламаний.
Одкровення в вихідному коді
Ще одна уразливість сайтів php - коли зловмисники, в разі збою налаштувань Apache, можуть бачити вміст і назви ваших файлів. У нормальній ситуації PHP виконується на стороні сервера, але в разі збою код може стати бачимо звичайним користувачам. Цього не можна допускати, так як прочитавши його, зловмисники можуть побачити доступні файли або бази даних з важливою інформацією, такий як, наприклад, облікові дані.
Щоб не допустити такого злому, слід більш уважно поставитися до структури каталогів вашого ресурсу. Ні в якому разі не допускайте зберігання важливих файлів в каталогах, які доступні всім користувачам, щоб не допустити можливості, що їх побачить хтось, крім вас.
Віддалений запуск файлів
Якщо ваш сайт містить видалені файли, це теж може стати причиною злому, якщо ці файли не довірені. Якщо сайт, на якому зберігаються ваші видалені файли, був зламаний, то їх код може бути замінений на шкідливий, який допоможе хакерам у зломі вашого сайту. Тому потрібно дуже уважно ставитися до безпеки всіх ресурсів, де розташовуються ваші файли.
Якщо ж все-таки злом стороннього ресурсу стався, тобто досить простий спосіб усунути небезпеку. Для цього вам потрібно в php.ini перевірити стан наступних прапорців:
- allow_url_fopen. Ця установка відповідає за те, чи можуть зовнішні файли бути включені в ваш сайт. За замовчуванням це дозволено, щоб це змінити, клікніть по прапорці.
- allow_url_include. Друге настроювання визначає, чи можуть вбудовані функції посилатися на файли, розташовані віддалено на інших ресурсах.
угон сесій
Угон трапляється, коли зловмисник вкрав чужий ідентифікатор сесії і скористався ним. Цей ідентифікатор грає роль ключа в захищеному з'єднанні між клієнтом і веб-сервером. У PHP цей ідентифікатор зберігається у користувача. Якщо ключ був вкрадений, але під час сеансу користувачем не було скоєно жодних важливих дій, то нічого особливо страшного не станеться. Але якщо під час сесії користувач здійснює, скажімо, аутентифікацію, це може привести до неприємних наслідків, адже хакер може заволодіти даними для входу в обліковий запис. Це особливо важливо, якщо користувач, що здійснює вхід, є адміністратором сайту.
ID сесії дуже часто крадуть за допомогою описаного вище XSS скрипта. Тому захист від злому за допомогою XSS вб'є відразу двох зайців, і захистить вас ще й від угону сесій. Хорошим способом захисту саме від угону ідентифікаторів сесії є їх регулярна зміна. І чим частіше, тим краще. Для того, щоб змінити ідентифікатор в php вам потрібно скористатися session_regenerate_id.
У разі, якщо ви використовуєте PHP 5.2 або вище, то для захисту від угону ідентифікатора ви можете скористатися таким функціями, як:
session.cookie.httpolny і session_set_cookie_parms.
Для того, щоб забезпечити безпеку вашого проекту, регулярно проводите пошук вразливостей на php сайті. Адже, якщо у вашого ресурс не буде вразливостей, то хакерам не буде за що зачепитися і ймовірність злому буде вкрай мала.
І, звичайно, не забувайте, що захист вашого сайту визначається також надійністю вашого хостингу. АдмінВПС завжди дбає про безпеку ваших проектів, незалежно від того, розташовуються вони на віртуальному хостингу або виділених серверах.