Розробники можуть запобігти вразливості SQL Injection у веб-додатках використання параметризованих запитів до бази даних із зв’язаними типізованими параметрами та обережне використання параметризованих збережених процедур у базі даних. Це можна зробити різними мовами програмування, включаючи Java, . NET, PHP тощо.
SQL ін'єкція зазвичай виникає, коли ви просите користувача ввести дані, як-от ім’я користувача/ідентифікатор користувача, і замість імені/ідентифікатора користувач дає вам оператор SQL, який ви несвідомо запустите у своїй базі даних.
Підготовлений оператор — це параметризований і багаторазово використовуваний SQL-запит, який змушує розробника писати команду SQL і надані користувачем дані окремо. Команда SQL виконується безпечно, запобігаючи вразливості SQL Injection.
- Найменший привілей. Зведення до мінімуму привілеїв програми та ОС. Деталі найменших привілеїв під час розробки. Найменші права адміністратора для кількох БД. Розширення найменших привілеїв за допомогою представлень SQL.
- Перевірка введених даних у списку дозволених.
Атаки SQL-ін’єкцій дозволяють зловмисникам підробити ідентифікаційні дані, підробити існуючі дані, спричинити проблеми відмови, такі як анулювання транзакцій або зміна балансу, дозволити повністю розкрити всі дані в системі, знищити дані або іншим чином зробити їх недоступними та стати адміністраторами сервер бази даних.
5 Поширених типів атак SQL-ін’єкцій
- Внутріполосне впровадження SQL. Зловмисник використовує цю техніку, щоб зламати веб-програму, вставляючи зловмисний код ін’єкції SQL у будь-які доступні поля введення. …
- Ін'єкція SQL на основі помилок. …
- SQL-ін'єкція на основі UNION. …
- Сліпа (інференційна) ін’єкція SQL. …
- Позадіапазонне впровадження SQL.