Головна » Статті » Як захистити свій сайт від злому |
Як захистити свій сайт від злому? Сьогодні Інтернет завойовує все більшу і більшу популярність, і слово «сайт» міцно увійшло до нашого лексикону. Останнім же часом за ручку з цим словом постійно ходять ще два - це «розробка» і «просування». І це не дивно, адже під пресом неймовірної кількості різних пропозицій у наданні послуг з розробки і просування сайтів в мозку рядового користувача ці два поняття вкоренилися як єдині, що заслуговують уваги при запуску інтернет-проекту. Але є ще одне слово, без якого ні створення, ні просування, ніщо взагалі не матиме сенсу, якщо Ви створюєте серйозний проект. Більш того, якщо Ви будете нехтувати цим словом, Ваші справи можуть виявитися набагато гірше, ніж це було раніше. Мова йде про безпеку, причому не про фізичну безпеку комп'ютера, на якому зберігається Ваш сайт, про яку, звичайно, теж варто подбати, а про безпеку в мережі Інтернет. Складно переоцінити важливість питань безпеки Вашого сайта, якщо в його базі даних зберігаються важливі відомості. Так, наприклад, складно собі уявити, що керівник ІТ-відділу в будь-якому великому банку, в базі даних якого зберігаються номери кредитних карт його клієнтів та інша важлива інформація, зможе спокійно спати вночі, якщо йому напередодні повідомити, що сайт банку, за який той несе відповідальність, не захищений належним чином і може бути зламаний протягом години мало-мальськи тямущим фахівцем. Адже найчастіше все саме так! Більш того, навіть захищений спеціальними функціями код сайта, обмежена дозволами на доступ до інформації база даних і співробітник, відповідальний за безпеку Ваших даних з високим окладом не завжди зможуть гарантувати Вам стовідсотковий захист. Саме тому, щоб потім не було болісно боляче, необхідно вкрай ретельно організовувати систему захисту даних. У даній статті Ми торкнемося теми захисту від, можливо, самого поширеного методу злому сайта - SQL-ін'єкції. Для початку визначимося з тим, що всі без винятку сучасні об'ємні, складні сайти будуються на основі бази даних. Робота з даними, що зберігаються в базі даних Вашого сайта, здійснюється за допомогою структурної мови запитів SQL. SQL-ін'єкція - техніка впровадження у вихідний SQL-запит певного коду, не порушує структури самого запиту, з метою отримання доступу до даних, що містяться в БД. Можливість впровадження SQL-ін'єкції виникає внаслідок недостатньої перевірки прийнятих від користувача значень. Впровадження SQL-ін'єкції, в залежності від типу використовуваної СУБД та умов впровадження, може дати можливість атакуючому виконати довільний запит до бази даних - наприклад, прочитати зміст будь-яких таблиць, видалити, змінити чи додати дані, отримати можливість читання і/або запису локальних файлів і виконання довільних команд на сервері, що атакується. Більшість SQL-ін'єкцій застосовується у формах введення, таких як реєстрація користувача, підписка, замовлення товару і т.д. Але не варто помилятися щодо того, що мова йде тільки про видимі форми введення. Дуже часто для проникнення коду SQL-ін'єкції використовується URL сайта. Таким чином, якщо Ваш сайт ніяк не захищений від проникнення, зломщик без зусиль зможе підібрати ключі до вашої бази даних і отримати будь-яку інформацію, яка в ній зберігається. Методи захисту сайта від SQL-ін'єкції: 1. Не довіряйте даним, які вводить користувач у форму на Вашому сайті. Всі ці дані необхідно перевіряти на наявність у них шкідливого коду. Для цього, по-перше, варто обмежувати довжину полів там, де це можливо. Наприклад, для рядка «Ім'я» цілком вистачить 10 символів. Обробляйте спеціальними функціями усі дані, що отримуються від користувача. При використанні PHP тут підійдуть функції mysql_real_escape_string () (екранує слешами заборонені символи типу ', "), Htmlspecialchars () (перетворює заборонені html дескриптори). Також тут можна перевіряти тип значень, що вводяться, наприклад, за допомогою intval () для чисельних значень. 2. Обмежуйте користувачів в правах на доступ до бази даних. Чим менше прав у користувача, тим менше шкоди буде в разі впровадження SQL-ін'єкції. 3. Принцип впровадження SQL-ін'єкції полягає в тому, що зломщик вгадує структуру Ваших запитів до БД, підбирає можливі імена таблиць і стовпців цієї бази і на основі отриманої інформації отримує дані. Так, наприклад, намагаючись отримати доступ до таблиці паролів Вашої бази даних, він буде підбирати імена типу pass, password, users і т.д. Тому, навряд чи йому вдасться витягти із цієї таблиці інформацію, якщо Ви назвете її «aslfjsaf». Однак даний метод надто радикальний, тому що ускладнить роботу з БД особисто Вам - через неінформативність імен. Розглянуті в даній статті методи захисту допоможуть Вам вберегти свій сайт від зломщиків, однак в умовах реального проекту в жодному разі не варто ними обмежуватися, так як ця стаття має лише ознайомлювальний характер і не може розповісти про всі способи і методи захисту даних. Головне, що Вам необхідно зрозуміти, - це важливість питань інтернет-безпеки Вашого сайта, про це ні в якому разі не можна забувати і нехтувати цим.
| |
Переглядів: 1365 | Коментарі: 1
| Теги: |
Всього коментарів: 1 | ||
| ||