Питання забезпечення безпеки сайту набуває особливої важливості, коли в його базі даних зберігаються цінні відомості. Просунуті методи кодування дозволяють захистити інформацію не гірше, ніж вхідні броньовані двері. Але навіть вони не можуть убезпечити сайт від злому зі стовідсотковою ймовірністю. Як тоді вберегти важливі відомості на віртуальному ресурсі?
Що таке SQL-ін'єкція?
Щоб отримати доступ до даних того чи іншого сайту, хакери використовують різні методи. Найпоширеніший з них - SQL-ін'єкція. Щоб розібратися в механізмі її дії, необхідно мати початкове уявлення про структуру сучасних складних сайтів. Основою таких служить база даних (БД). Для роботи з нею використовується типовий мову запитів SQL. Зловмисники впроваджують у вихідне завдання певний код, що не порушує його структуру, але при цьому відкриває доступ до даних. Залежно від умов проникнення і типу системи управління зловмисники можуть виконати довільне дію - наприклад, вивчити вміст таблиць, стерти або додати будь-яку інформацію і т.д.
Переважна частина SQL-ін'єкцій потрапляє на сайти через форми введення (реєстрація нового користувача, оформлення підписки, замовлення товарів, питання до менеджера та ін.). При цьому зломщики можуть використовувати не тільки видимі шаблони. Найчастіше під дію SQL-ін'єкції потрапляє URL сайту. Щоб захиститися від злому, необхідно дотримуватися таких правил:
- Не варто беззастережно довіряти інформації, зазначеної користувачем у формі введення. Її потрібно перевіряти на наявність специфічних кодів. Слід також обмежити допустиму довжину полів. Наприклад, для графи «Ім'я» цілком достатньо 10 символів. Всі дані, отримані від сторонніх користувачів, повинні піддаватися обробці спеціальними функціями.
- Необхідно ввести обмеження прав користувачів на доступ до баз даних. Якщо змін ззовні можна внести мало, то і ймовірність запуску SQL-ін'єкції буде небагато.
- Щоб отримати доступ до інформації, зломщикові потрібно вгадати структуру запитів до бази даних. Тому він буде підбирати можливі імена стовпців і таблиць. Якщо використовувати неспецифічні найменування, можна значно підвищити рівень безпеки сайту. Цей метод є радикальним, тому що ускладнює роботу з БД.
Описані вище способи захисту дозволяють знизити ймовірність злому сайту. Але обмежуватися ними ні в якому разі не варто. Найкраще довірити організацію охоронних заходів професіоналам.