Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Як працює пакет середнього програмного забезпечення SQL у Laravel


Як працює пакет середнього програмного забезпечення SQL у Laravel


Пакет середнього програмного забезпечення SQL в Laravel працює шляхом перехоплення вхідних запитів HTTP та огляду вхідних даних для виявлення та запобігання атакам ін'єкцій SQL, перш ніж вони досягнуть логіки програми або рівня бази даних. Ось детальне пояснення того, як функціонує такі проміжні програми:

Основна функціональність

- Проміжне програмне забезпечення діє як фільтр на дані запиту HTTP, включаючи параметри запитів, входи форми та інші дані, що надаються користувачем.
- Він перевіряє та дезінфікує ці входи, щоб переконатися, що вони не містять шкідливого SQL -коду або візерунків, які можуть бути використані для маніпулювання запитами SQL.
- За рано санітарним входом, це запобігає передачі небезпечних даних у необроблені запити SQL або будівельники запитів, які можуть бути вразливими до ін'єкції.

Технічні механізми

-Проміжне програмне забезпечення, як правило, сканує вхідні рядки для підозрілих символів або ключових слів SQL, які зазвичай використовуються в атаках ін'єкцій, таких як `'`, `;`, `--`,` drop`, `select`, тощо.
- Це може уникнути або видалити небезпечні символи або відхиляти запити відверто, якщо виявлено шкідливі зразки.
- Деякі пакети середнього програмного забезпечення також забезпечують налаштовану реєстрацію підозрілих входів, що дозволяє розробникам контролювати та аналізувати потенційні спроби атаки.
- Проміжне програмне забезпечення може бути застосоване в усьому світі до всіх маршрутів або вибірково на конкретних маршрутах, які потребують додаткового захисту.

Інтеграція в laravel

- Пакет встановлюється за допомогою композитора та налаштований шляхом публікації його файлу конфігурації.
- Middleware зареєстроване в HTTP -ядрі Laravel або в усьому світі, або як проміжне забезпечення маршруту.
- Після реєстрації він автоматично обробляє кожен вхідний запит або тих, хто проводиться через нього.
- Розробники можуть налаштувати поведінку, такі як реєстрація, блокування або санітарна стратегії за допомогою конфігурації.

Додатковий захист

- Окрім ін'єкції SQL, деякі пакети середнього програмного забезпечення також захищають від ін'єкції LDAP, санікуючи входи, що використовуються в запитах служби каталогів.
- Проміжне програмне забезпечення доповнює вбудований захист Laravel, такі як красномовний обв'язування параметрів Builder Query Builder, який автоматично виходить з входів у більшості випадків.
- Це особливо корисно, коли використовуються необроблені запити SQL або сирі вирази (`WhereRaw`,` Selectraw`), які за своєю суттю є більш ризикованими.

Приклад використання

-Після встановлення пакету середнього програмного забезпечення (наприклад, за допомогою `композитора потрібен захист захисту/sql-quertic '), ви опублікуєте конфігурацію та очищення кешу.
- Ви реєструєте проміжне програмне забезпечення в `app/http/kernel.php` або в усьому світі, або як проміжне програмне забезпечення.
- Потім вхідні запити відфільтруються за допомогою проміжного програмного забезпечення, що санітарно -апарат або блокує зловмисні запити, перш ніж вони досягнуть ваших контролерів або рівня бази даних.

Підводячи підсумок, пакет проміжного програмного забезпечення SQL в Laravel працює як проактивний рівень безпеки, який ретельно перевіряє та санітує введення користувачів на рівні запиту HTTP для запобігання атакам ін'єкцій SQL. Це посилює нативну захист Laravel, орієнтуючись на необроблені запити та підозрілі схеми введення, забезпечуючи налаштовані можливості журналу та блокування для захисту програми та бази даних [3] [4] [5].

Цитати:
[1] https://escape.tech/blog/laravel-sql-injection-guide/
[2] https://www.stackhawk.com/blog/sql-injection-prevention-laravel/
[3] https://github.com/aswinsasi/injection-protector
[4] https://gist.github.com/bewithdhanu/3acd9a44c74e9f2696a5e41692fa89a3
[5] https://acquaintsoft.com/answers/what-is-sql-injection-protection-in-laravel
[6] https://stackoverflow.com/questions/15778572/preventing-sql-injection-in-node-js
[7] https://cheatsheetseries.owasp.org/cheatsheets/laravel_cheat_sheet.html
[8] https://stackoverflow.com/questions/35439234/laravel-dependency-injection-in-middleware