опишемо їх дію і небезпека вдалого виконання.
1) PHP-ін'єкція (PHP-інклудінг, англ. PHP injection), include-баг - один із способів злому веб-сайтів , що працюють на PHP. Він полягає в тому, щоб виконати потрібний код на серверній стороні сайту. Уразливими функціями є eval (), preg_replace () (з модифікатором В«eВ»), require_once (), include_once (), include (), require (), create_function ().
Вона виникає, коли через неуважність, незнання, або з якої-небудь іншої, відомої тільки йому одному причини, програміст дозволяє використовувати дані, передані сценарієм у вигляді параметрів без додаткової перевірки в якості параметра перерахованих вище функцій.
Приклад:
Цей скрипт уразливий, оскільки до вмісту змінної $ module просто додається В«. phpВ» і за отриманим шляху підключається файл.
Зломщик може на своєму сайті створити файл, що містить PHP-код (# "justify"> Це одна з найнебезпечніших вразливостей, тому що в більшості випадків дозволяє отримати доступ до управління даними на веб-сервері.
) SQL-ін'єкція, впровадження SQL-коду (англ. SQL injection) - один з поширених способів злому сайтів і програм, що працюють з базами даних, заснований на впровадженні в запит довільного SQL-коду.
Впровадження SQL, залежно від типу використовуваної СУБД і умов впровадження, може дати можливість атакуючому виконати довільний запит до бази даних (наприклад, прочитати вміст будь-яких таблиць, видалити, змінити або додати дані), отримати можливість читання та/або запису локальних файлів і виконання довільних команд на атакується сервері.
Атака типу впровадження SQL може бути можлива за некоректної обробки вхідних даних, що використовуються в SQL-запитах.
Дизайнер прикладних програм, що працюють з базами даних, повинен знати про такі уразливість і вживати заходів протидії запровадженню SQL.
Припустимо, серверне ПЗ, отримавши вхідний параметр id, використовує його для створення SQL-запиту. Розглянемо наступний PHP-скрипт:
# Попередній код скрипта ...
$ id = $ _REQUEST ['id'];
$ res = mysql_query ("SELECT * FROM news WHERE id_news = $ id");
# Наступний код скрипта ...
Якщо на сервер переданий параметр id, що дорівнює 5 (наприклад так: # "justify"> SELECT * FROM news WHERE id_news = 5
Але якщо зловмисник передасть як параметр id рядок -1 OR 1 = 1 (наприклад, так: # "justify"> SELECT * FROM news WHERE id_news = -1 OR 1 = 1
Таким чином, зміна вхідних параметрів шляхом додавання в них конструкцій мови SQL викликає зміну в логіці виконання SQL-запиту (в даному прикладі замість новини із заданим ідентифікатором будуть вибрані всі наявні в базі новини, оскільки вираження 1 = 1 завжди істинно).
) XSS (англ. СrossSiteSсriрting - В«міжсайтовий скриптингВ») - тип атаки на уразливі інтерактивні інформаційні системи в вебі . XSS застосовується, коли в генеруються сервером сторінки можливо впровадити клієнтські скрипти, але не тільки. Специфіка подібних атак полягає в тому, що для атаки на сервер в якості засобу атаки зазвичай використовується авторизований на цьому сервері клієнт.
Для терміну використовують скорочення В«XSSВ», щоб не було плутанини з каскадним таблицями стилів, що використовують скорочення В«CSSВ».
Зі статистичних даних на 2012 рік XSS складають 26% і займають перше місце серед інших вразливостей. Довгий час програмісти не приділяли їм належної уваги, вважаючи їх безпечними. Однак ця думка помилкова: на сторінці або в HTTP-Cookie можуть бути вельми вразливі дані (наприклад, ідентифікатор сесії адміністратора). На популярному сайті скрипт може влаштувати DoS-атакy. p align="justify"> Розрізняють активний і пасивний спосіб впливу. Активною є XSS, що не вимагає яких-небудь зайвих дій з боку користувача з точки зору функціоналу веб-додатки. Пасивні XSS увазі, що для їх спрацьовування потрібно якесь додаткове дію, яку повинен виконати браузер жертви (наприклад, клік по спеціально сформованої посиланням). p align="justify">) CSRF (англ. СrossSiteR...