Rất thường xuyên với một ứng dụng Laravel, bạn sẽ có một số loại CRUD [Tạo, Đọc, Cập nhật, Xóa]. Tất nhiên, điều này yêu cầu các biểu mẫu HTML và gửi dữ liệu từ giao diện người dùng đến bộ điều khiển mặt sau. Laravel sử dụng mã thông báo CSRF để thêm một lớp bảo mật khác trên ứng dụng web của bạn. Nếu mã thông báo CSRF bị thiếu trong quá trình gửi biểu mẫu hoặc tương tự như vậy, Laravel sẽ khiếu nại về điều đó
Trong phần hướng dẫn sau đây, chúng tôi sẽ khám phá một số cách khác nhau về cách bạn có thể đặt mã thông báo CSRF vào các trang của mình một cách hiệu quả
Phương pháp 1 – Thêm thẻ meta mã thông báo CSRF
Thêm mã thông báo CSRF vào phần đầu của HTML của bạn
Nói chung, phương pháp này sẽ được mã hóa vào tệp Bố cục/Tiêu đề hoặc tương tự
Thêm đoạn mã sau vào tập tin của bạn
Điều này sẽ mang lại kết quả như sau khi trang được hiển thị
Phương pháp 2 – Thêm trường nhập mã thông báo CSRF
Tiếp theo, nếu bạn gửi dữ liệu qua một biểu mẫu, Laravel sẽ thấy trường _token trong JSON được gửi tới bộ điều khiển. Mã thông báo này sẽ được xác thực cụ thể cho ứng dụng của bạn để tăng cường yêu cầu bảo mật trên nhiều trang web
Hãy lấy một hình thức
Name
Add Macro
Nếu biểu mẫu này đã được gửi, Laravel sẽ dừng yêu cầu vì không có mã thông báo CSRF nào
Tất cả những gì chúng ta cần làm là thêm cú pháp lưỡi Laravel sau
@csrf
Đúng, đơn giản vậy thôi
Vì vậy, đầy đủ điều này sẽ giống như sau
@csrf
Name
Add Macro
Điều này sẽ mang lại một cái gì đó như sau
Name
Add Macro
Và bây giờ, khi biểu mẫu này được gửi, mã thông báo sẽ được xác thực thành công và dữ liệu sẽ chuyển đến bộ điều khiển một cách trôi chảy
Cross-Site Request Forgery [CSRF] là một kiểu tấn công được kẻ tấn công thực hiện để gửi yêu cầu đến hệ thống với sự trợ giúp của người dùng được ủy quyền và được hệ thống tin cậy.
Laravel cung cấp khả năng bảo vệ trước các cuộc tấn công CSRF bằng cách tạo mã thông báo CSRF. Mã thông báo CSRF này được tạo tự động cho mỗi người dùng. Mã thông báo này không là gì ngoài một chuỗi ngẫu nhiên được quản lý bởi ứng dụng Laravel để xác minh yêu cầu của người dùng
Cách sử dụng. Bảo vệ mã thông báo CSRF này có thể được áp dụng cho bất kỳ biểu mẫu HTML nào trong ứng dụng Laravel bằng cách chỉ định trường biểu mẫu ẩn của mã thông báo CSRF. Các yêu cầu được xác thực tự động bởi phần mềm trung gian CSRF VerifyCsrfToken
Có ba cách khác nhau để bạn có thể làm điều này
- @csrf
- csrf_field[]
- csrf_token[]
@csrf. Đây là một chỉ thị mẫu lưỡi dao để tạo trường nhập liệu ẩn trong biểu mẫu HTML
- cú pháp.
@csrf // Generate hidden input field ..... .....
- Ví dụ