Làm cách nào để đặt CSRF TOKEN trong Laravel?

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

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

Làm cách nào để đặt CSRF TOKEN trong Laravel?

@csrf

Điều này sẽ mang lại một cái gì đó như sau

 

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

  1. @csrf
  2. csrf_field()
  3. 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ụ




    3

    4
    5
    6

    7
    4
    9
    6

    1
    4
    3
    4
    3
    6

    7
    8
    9
    6

    7______74
    23
    6

    1
    4
    27
    6

    29
    4______731
    32
    31
    6

    29
    4
    37 
    38
    39
    40
    6

    42
    43

    44

    42
    4
    47 
    48
    39
    50 
    51
    39
    53

    54
    55
    39
    57
    6

    42
    4
    47 
    48
    39
    64 
    51
    39
    64

    54
    55
    39
    71
    6

    42
    4
    47 
    48
    39
    78 
    51
    39
    78 
    42
    39
    44
    6

    29
    8
    37
    6

    1
    8
    27
    6

    7____78
    23
    6

    8
    5
    6

csrf_field(). Chức năng này có thể được sử dụng để tạo trường nhập ẩn trong biểu mẫu HTML

Ghi chú. Hàm này nên được viết bên trong dấu ngoặc nhọn kép

  • cú pháp.
  • Ví dụ




    3

    4
    5
    6

    7
    4
    9
    6

    1
    4
    3
    4
    3
    6

    7
    8
    9
    6

    7______74
    23
    6

    1
    4
    27
    6

    29
    4______731
    32
    31
    6

    29
    4
    37 
    38
    39
    40
    6

    42
    41

    44

    42
    4
    47 
    48
    39
    50 
    51
    39
    53

    52
    55
    39
    57
    6

    42
    4
    47 
    48
    39
    64 
    51
    39
    64

    52
    55
    39
    71
    6

    42
    4
    47 
    48
    39
    78 
    51
    39
    78

    80
    42
    39
    44
    6

    29
    8
    37
    6

    1
    8
    27
    6

    7____78
    23
    6

    8
    5
    6

csrf_token(). Hàm này chỉ đưa ra một chuỗi ngẫu nhiên. Hàm này không tạo trường nhập ẩn

Ghi chú. Trường đầu vào HTML phải được viết rõ ràng. Hàm này nên được viết bên trong dấu ngoặc nhọn kép

  • cú pháp.
    2
  • Ví dụ




    3

    4
    5
    6

    7
    4
    9
    6

    1
    4
    3
    4
    3
    6

    7
    8
    9
    6

    7______74
    23
    6

    1
    4
    27
    6

    29
    4______731
    32
    31
    6

    29
    4
    37 
    38
    39
    40
    6

    42
    4
    47 
    48
    39
    244
    51
    39
    247
    42
    39
    250
    6

    44

    42
    4
    47 
    48
    39
    50 
    51
    39
    53

    262
    55
    39
    57
    6

    42
    4
    47 
    48
    39
    64 
    51
    39
    64

    262
    55
    39
    71
    6

    42
    4
    47 
    48
    39
    78 
    51
    39
    78

    290
    42
    39
    44
    6

    29
    8
    37
    6

    1
    8
    27
    6

    7____78
    23
    6

    8
    5
    6

đầu ra. Đầu ra sẽ giống nhau đối với bất kỳ cách nào trong ba cách trên để tạo mã thông báo CSRF. Trường mã thông báo CSRF phải được viết/tạo ở đầu mọi biểu mẫu HTML, sử dụng bất kỳ cách nào trong ba cách, trong ứng dụng Laravel

Làm cách nào để thêm mã thông báo CSRF trong Laravel?

Có thể truy cập mã thông báo CSRF của phiên hiện tại thông qua phiên của yêu cầu hoặc thông qua chức năng trợ giúp csrf_token. .
sử dụng Chiếu sáng\Http\Yêu cầu;
Tuyến đường. get('/token', function (Request $request) {
$token = $request->session()->token();
$token = csrf_token();
//

Làm cách nào để bảo mật mã thông báo CSRF trong Laravel?

CSRF của Laravel trong Biểu mẫu . Do đó bằng cách sử dụng @csrf trong các trường biểu mẫu, thư mục Blade sẽ tạo các trường bảo mật để xác thực quy trình .

Mã thông báo CSRF được lưu trữ ở đâu trong Laravel?

Laravel lưu trữ mã thông báo CSRF hiện tại trong cookie XSRF-TOKEN được bao gồm trong mỗi phản hồi do khung tạo ra. Bạn có thể sử dụng giá trị cookie để đặt tiêu đề yêu cầu X-XSRF-TOKEN

CSRF trong Laravel là gì?

CSRF là một hoạt động độc hại liên quan đến kẻ tấn công thực hiện các hành động thay mặt cho người dùng được xác thực. May mắn thay, Laravel cung cấp các biện pháp vượt trội để ngăn chặn loại lỗ hổng này