Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Gói phần mềm trung gian tiêm SQL hoạt động như thế nào ở Laravel


Gói phần mềm trung gian tiêm SQL hoạt động như thế nào ở Laravel


Gói phần mềm trung gian SQL trong Laravel hoạt động bằng cách chặn các yêu cầu HTTP đến và kiểm tra dữ liệu đầu vào để phát hiện và ngăn chặn các cuộc tấn công tiêm SQL trước khi chúng đạt đến logic ứng dụng hoặc lớp cơ sở dữ liệu. Dưới đây là một lời giải thích chi tiết về cách các chức năng phần mềm trung gian như vậy:

Chức năng cốt lõi

- Phần mềm trung gian hoạt động như một bộ lọc trên dữ liệu yêu cầu HTTP, bao gồm các tham số truy vấn, đầu vào biểu mẫu và dữ liệu do người dùng cung cấp khác.
- Nó xác nhận và vệ sinh các đầu vào này để đảm bảo chúng không chứa mã hoặc mẫu SQL độc hại có thể được sử dụng để thao tác các truy vấn SQL.
- Bằng cách vệ sinh đầu vào sớm, nó ngăn dữ liệu không an toàn được chuyển vào các truy vấn SQL thô hoặc các nhà xây dựng truy vấn có thể dễ bị tiêm.

Cơ chế kỹ thuật

-Phần mềm trung gian thường quét các chuỗi đầu vào cho các ký tự đáng ngờ hoặc các từ khóa SQL thường được sử dụng trong các cuộc tấn công tiêm, chẳng hạn như `'`, `;`, `--`,` drop`, `select`, v.v.
- Nó có thể thoát hoặc loại bỏ các ký tự nguy hiểm hoặc từ chối các yêu cầu hoàn toàn nếu các mẫu độc hại được phát hiện.
- Một số gói phần mềm trung gian cũng cung cấp ghi nhật ký cấu hình của các đầu vào đáng ngờ, cho phép các nhà phát triển giám sát và phân tích các nỗ lực tấn công tiềm năng.
- Phần mềm trung gian có thể được áp dụng trên toàn cầu cho tất cả các tuyến hoặc có chọn lọc trên các tuyến cụ thể yêu cầu bảo vệ thêm.

Tích hợp trong Laravel

- Gói được cài đặt thông qua trình soạn thảo và được cấu hình bằng cách xuất bản tệp cấu hình của nó.
- Middleware được đăng ký trong HTTP Kernel của Laravel hoặc là phần mềm trung gian của tuyến đường.
- Sau khi đăng ký, nó tự động xử lý mọi yêu cầu đến hoặc những yêu cầu được định tuyến qua nó.
- Các nhà phát triển có thể tùy chỉnh hành vi như ghi nhật ký, chặn hoặc vệ sinh các chiến lược thông qua cấu hình.

Bảo vệ bổ sung

- Bên cạnh việc tiêm SQL, một số gói phần mềm trung gian cũng bảo vệ chống tiêm LDAP bằng cách vệ sinh các đầu vào được sử dụng trong các truy vấn dịch vụ thư mục.
- Phần mềm trung gian bổ sung cho các biện pháp bảo vệ tích hợp của Laravel như ràng buộc tham số Truy vấn ERM và Truy vấn ERM, tự động thoát ra các đầu vào trong hầu hết các trường hợp.
- Nó đặc biệt hữu ích khi các truy vấn SQL thô hoặc các biểu thức thô (`whereraw`,` selectraw`) được sử dụng, vốn đã mạo hiểm hơn.

Ví dụ về việc sử dụng

-Sau khi cài đặt gói phần mềm trung gian (ví dụ: thông qua `Trình soạn thảo yêu cầu bảo vệ/sql-query-protection`), bạn xuất bản cấu hình và xóa bộ đệm.
- Bạn đăng ký phần mềm trung gian trong `Ứng dụng/http/kernel.php` toàn cầu hoặc dưới dạng phần mềm trung gian.
- Các yêu cầu đến sau đó được lọc bởi phần mềm trung gian, giúp vệ sinh đầu vào hoặc chặn các truy vấn độc hại trước khi chúng tiếp cận bộ điều khiển hoặc lớp cơ sở dữ liệu của bạn.

Tóm lại, gói phần mềm trung gian tiêm SQL trong Laravel hoạt động như một lớp bảo mật chủ động xem xét kỹ lưỡng và vệ sinh đầu vào của người dùng ở cấp độ yêu cầu HTTP để ngăn chặn các cuộc tấn công tiêm SQL. Nó tăng cường các biện pháp bảo vệ bản địa của Laravel bằng cách nhắm mục tiêu các truy vấn thô và các mẫu đầu vào đáng ngờ, cung cấp khả năng ghi nhật ký và chặn cấu hình để bảo vệ ứng dụng và cơ sở dữ liệu [3] [4] [5].

Trích dẫn:
[1] https://escape.tech/blog/laravel-sql-injection-guide/
.
[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