Пакет промежуточного программного обеспечения SQL -инъекции в Laravel работает, перехватывая входящие HTTP -запросы и осматривая входные данные для обнаружения и предотвращения атак SQL -инъекций, прежде чем они достигнут логики приложения или уровня базы данных. Вот подробное объяснение того, как функционирует такое промежуточное программное обеспечение:
Основная функциональность
- Промежуточное программное обеспечение действует как фильтр на данных HTTP-запроса, включая параметры запроса, входы формы и другие данные, поставляемые пользователем.
- Он проверяет и продезинфицирует эти входные данные, чтобы убедиться, что они не содержат вредоносного кода SQL или шаблонов, которые можно использовать для манипулирования запросами SQL.
- Рано, дезинфицируя входные данные, он предотвращает передачу небезопасных данных в необработанные запросы SQL или строителей запросов, которые могут быть уязвимы для инъекции.
Технические механизмы
-Промежуточное программное обеспечение обычно сканирует входные строки для подозрительных символов или ключевых слов SQL, которые обычно используются в инъекционных атаках, таких как «», `,`; `,`-`,` drop`, `select` и т. Д.
- Это может избежать или удалить опасные символы или отказаться от запросов, если обнаружены вредоносные модели.
- Некоторые пакеты промежуточного программного обеспечения также обеспечивают настраиваемое ведение журнала подозрительных входов, что позволяет разработчикам отслеживать и анализировать возможные попытки атаки.
- Промежуточное программное обеспечение может быть применено по всему миру ко всем маршрутам или выборочно на определенных маршрутах, которые требуют дополнительной защиты.
Интеграция в Ларавел
- Пакет установлен через композитор и настроен путем публикации его файла конфигурации.
- Промежуточное программное обеспечение зарегистрировано в ядре Laravel's HTTP либо во всем мире, либо в качестве промежуточного программного обеспечения.
- После регистрации он автоматически обрабатывает каждый входящий запрос или те, которые направляются через него.
- Разработчики могут настроить поведение, такое как ведение журнала, блокирование или стратегии дезинфицирования посредством конфигурации.
Дополнительная защита
- Помимо инъекции SQL, некоторые пакеты промежуточного программного обеспечения также защищают от инъекции LDAP за счет дезинфекции входных данных, используемых в запросах службы каталогов.
- Промежуточное программное обеспечение дополняет встроенные средства защиты Laravel, такие как красноречивая привязка параметров Eloferent ORM и запросов, которая в большинстве случаев автоматически избегает входов.
- Это особенно полезно, когда используются необработанные запросы SQL или необработанные выражения (`vheraw`,` selectraw '), которые по своей природе более рискованны.
Пример использования
-После установки пакета промежуточного программного обеспечения (например, через `композитор требуется защита/SQL-Query-Protection`), вы публикуете конфигурацию и очистку кэша.
- Вы зарегистрируете промежуточное программное обеспечение в `app/http/kernel.php` либо по всему миру, либо в качестве промежуточного программного обеспечения.
- Входящие запросы затем получают отфильтрованное промежуточное программное обеспечение, которое продезинфицирует входы или блокирует вредоносные запросы, прежде чем они достигнут ваших контроллеров или уровня базы данных.
Таким образом, пакет промежуточного программного обеспечения SQL -инъекции в Laravel работает в качестве упреждающего уровня безопасности, который изучает и продезинфицирует входы пользователей на уровне HTTP -запроса, чтобы предотвратить атаки впрыска SQL. Он улучшает нативную защиту Laravel, нацеливаясь на необработанные запросы и подозрительные шаблоны ввода, предоставляя настраиваемые возможности для ведения журнала и блокировки для защиты приложения и базы данных [3] [4] [5].
Цитаты:
[1] https://escape.tech/blog/laravel-sql-nection-guide/
[2] https://www.stackhawk.com/blog/sql-nection-prevention-laravel/
[3] https://github.com/aswinsasi/incection-protector
[4] https://gist.github.com/bewithdhanu/3acd9a44c74e9f2696a5e41692fa89a3
[5] https://acquaintsoft.com/answers/what-is-sql-nection-protection-in-laravel
[6] https://stackoverflow.com/questions/15778572/preventing-sql-nection-in-node-js
[7] https://cheatsheetseries.owasp.org/cheatsheets/laravel_cheat_sheet.html
[8] https://stackoverflow.com/questions/35439234/laravel-tependency-incement-in-middleware