Термін
SQL-ін'єкція
Атака, за якої зловмисник через форму чи адресу підсовує застосунку власну команду для бази даних і може читати, змінювати чи видаляти дані. Захищає правильне програмування з параметризованими запитами та регулярне тестування.
Оновлено
Що це означає
SQL-ін'єкція - це атака, під час якої зловмисник через форму, поле пошуку або адресу сторінки вставляє в застосунок власну команду бази даних. Якщо застосунок не перевіряє введення, база виконує команду, і атакувальник може читати, змінювати чи видаляти дані, до яких інакше не мав би доступу.
Це одна з найстаріших і досі найпоширеніших вразливостей вебзастосунків, поряд з міжсайтовим скриптингом. Причиною майже завжди є помилка програмування, коли застосунок складає запит до бази просто з тексту, введеного користувачем, не відокремлюючи дані від команди.
Наслідки можуть бути серйозними: витік клієнтських баз, облікових даних чи платіжної інформації, зміна цін в інтернет-магазині або повне знищення даних. Для компанії це часто означає і порушення захисту персональних даних з усіма обов'язками, що з нього випливають.
Як це працює на практиці
Найефективніший захист - правильне програмування з параметризованими запитами, за яких база завжди вважає введення користувача лише даними, а не командою. Його доповнюють перевірка введення, обмеження прав облікового запису бази і регулярне оновлення бібліотек і систем.
Компаніям, які замовляють розробку сайту, інтернет-магазину чи клієнтського порталу, варто включити в договір з підрядником вимоги до безпечної розробки і право протестувати застосунок. Регулярні тести на проникнення виявляють вразливості раніше, ніж їх знайде зловмисник.
Чутливі дані в базі, наприклад паролі, слід зберігати так, щоб їхній витік не завдав прямої шкоди. Паролі зберігають як надійні хеші, а інші чутливі поля може захищати шифрування, тож навіть викрадена база має для атакувальника обмежену цінність.
На що звернути увагу
Якщо компанія виявила витік даних, вона має діяти швидко за планом реагування на інциденти. Про витік персональних даних, як правило, треба повідомити наглядовий орган протягом 72 годин, а за високого ризику і самих суб'єктів даних, інакше загрожують додаткові санкції.
За безпеку застосунку відповідає контролер, навіть якщо його розробив зовнішній підрядник. Договір має регулювати відповідальність за помилки та їх виправлення, а компанія може розглянути кіберстрахування, що покриває частину витрат після інциденту.
Потрібно пояснити термін на вашій конкретній ситуації? Консультації від 55 € / година без ПДВ, залежно від теми та складності.