Laravel 용 Spatie 패키지는 주로 안전한 쿼리 건설 방법 및 원시 SQL 쿼리에 직접 입력하는 것을 피하는 필터링 메커니즘을 사용하여 SQL 주입을 방지합니다. SQL 주입 방지에 도움이되는 Spatie 패키지의 주요 기능 및 기능에는 다음이 포함됩니다.
-ELLEDFILTERS () 메소드 :이 기능을 사용하면 쿼리에 허용되는 필터를 지정할 수 있으며, 허용 가능한 쿼리 매개 변수를 효과적으로 검토 할 수 있습니다. 필터를 명시 적으로 허용 한 필터로만 제한함으로써 공격자는 예상치 못한 또는 안전하지 않은 쿼리 매개 변수를 통해 악의적 인 SQL을 주입하는 것을 방지합니다 [2].
- Laravel의 쿼리 빌더 및 웅변 ORM 사용 : Spatie 패키지는 Laravelâ의 쿼리 빌더와 엘로 쿠 네트 ORM을 활용합니다. 이러한 메커니즘은 사용자 입력을 원시 SQL 문자열로 연결하는 대신 매개 변수로 자동으로 바인딩하여 주입 공격을 방지합니다 [1] [4].
- 안전하지 않은 원시 SQL 기능을 피하십시오 : 패키지는 사용자 입력을 직접 보간하는 원시 SQL 쿼리를 피하는 것을 권장합니다. 대신, 쿼리 계층에 도달하기 전에 입력을 소독하고 검증하는 필터 및 스코프와 같은 안전한 추상화를 사용하여 촉진합니다 [2] [3].
요약하면, Spatie 패키지는 Laravelâ의 안전한 쿼리 빌더에 의존하는 필터링 및 쿼리를위한 더 안전한 도메인 별 언어 (DSL)를 제공함으로써 SQL 주입 방지를 지원합니다. `allessfilters ()``` '와 같은 특정 기능은 화이트리스트 입력을 돕고 안전하고 검증 된 매개 변수 만 쿼리에 사용되도록하여 SQL 주입 위험을 효과적으로 완화합니다 [2].
인용 :
[1] https://escape.tech/blog/laravel-sql-injection-guide/
[2] https://www.reddit.com/r/laravel/comments/bbxhoc/unsafe_sql_functions_be_aware_of_your/
[3] https://stitcher.io/blog/unsafe-sql-functions-in-laravel
[4] https://www.kiuwan.com/blog/top-5-best-practices-for-prevelovers-on-preventing-sql-injection-attacks/
[5] https://www.baeldung.com/sql-injection
[6] https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php
[7] https://stackoverflow.com/questions/1862036/how-o-i-protect-this-function-from-sql-injection
[8] https://cheatsheetseries.owasp.org/cheatsheets/sql_injection_prevention_cheat_sheet.html