Hướng dẫn set samesite cookie php - thiết lập php cookie samesite
1. Đối với PHP> = V7.3Bạn có thể sử dụng mảng 0, ví dụ: Show
Giá trị của phần tử Samesite phải là 1, 2 hoặc 3.Đọc thêm trong trang hướng dẫn. 2. Đối với PHPBạn có thể sử dụng một trong các giải pháp/cách giải quyết sau đây tùy thuộc vào cơ sở mã/nhu cầu của bạn 2.1 Đặt cookie Samesite bằng cấu hình ApacheBạn có thể thêm dòng sau vào cấu hình Apache của mình
Và điều này sẽ cập nhật tất cả các cookie của bạn bằng cờ 4Xem thêm tại đây: https://blog.giantgeek.com/?p=1872 2.2 Đặt cookie Samesite bằng cấu hình nginx
Tương tự ở đây, điều này cũng sẽ cập nhật tất cả các cookie của bạn bằng cờ 4Xem thêm tại đây: https://serverfault.com/questions/849888/add-samesite-to-cookies-using-ninx-as-rerse 2.3 Đặt cookie Samesite bằng phương pháp Header always edit Set-Cookie (.*) "$1; SameSite=Lax" 6Như chúng ta biết cookie chỉ là một tiêu đề trong yêu cầu HTTP với cấu trúc sau
Vì vậy, chúng tôi chỉ có thể đặt cookie bằng phương pháp 6
Trên thực tế, Symfony không chờ đợi Php 7.3 và đã làm điều đó dưới mui xe, xem tại đây Bạn cũng có thể sử dụng tương tự ở Laravel vì Laravel dưới mui xe bằng lớp 8 của Symfony2.4 Đặt cookie Samesite bằng cách sử dụng lỗi trong phương thức Header always edit Set-Cookie (.*) "$1; SameSite=Lax" 9
Hãy cẩn thận với điều này, đó là một lỗi đã biết trong phương pháp PHP 9 và đã được giải quyết trong phiên bản PHP7.3, xem tại đây - https://github.com/php/php-src/commit/5cb825df7251aEb28b297
Php 7.3 Cookies cùng trang webPhp 7.3 hiện đã được phát hành chính thức và nó đi kèm với hỗ trợ cho cờ Cookie Samesite! Cờ cookie trang web giống nhau là gìCookie cùng một trang web, được hỗ trợ trong Chrome (51+), Firefox (60+), nhưng chưa ở cạnh/IE (không có gì đáng ngạc nhiên), là một lá cờ mà bạn có thể đặt cho cookie. Cờ này sẽ đánh dấu xem cookie có nên được gửi cho các yêu cầu chéo. Có ba giá trị, 2 và 3, 1, rằng bạn có thể quyết định cách bạn muốn trình duyệt thực thi nó.Không có Nếu cờ 4 được đặt, các trình duyệt sẽ không thực thi các quy tắc Samesite. Ngay cả khi các trình duyệt bắt đầu xử lý cookie mà không có cờ này là 2 (đó là trường hợp của Chrome 80 trở lên), việc đặt 1 sẽ vô hiệu hóa sự bảo vệ này.Lỏng lẻo Khi một cookie được đánh dấu 7, cookie đó sẽ không được thông qua cho bất kỳ yêu cầu tên miền nào trừ khi đó là liên kết thông thường điều hướng người dùng đến trang web đích. Các phương thức yêu cầu khác (chẳng hạn như 8 và 9) và các yêu cầu XHR sẽ không chứa cookie này.Nghiêm khắc Nếu bạn đánh dấu một cookie là 3, cookie đó sẽ không được gửi cho bất kỳ yêu cầu nào trong miền. Ngay cả khi người dùng chỉ cần điều hướng đến trang web đích với một liên kết thông thường, cookie sẽ không được gửi. Điều này có thể dẫn đến một số trải nghiệm người dùng khó hiểu hoặc hết sức không thực tế, vì vậy hãy cẩn thận nếu bạn sử dụng cookie 3.Even if the user simply navigates to the target site with a regular link, the cookie will not be sent. This might lead to some confusing or downright impractical user experiences, so be careful if you use 3 cookies.Cookie phiên cùng trang trong Php 7.3Php 7.3 cung cấp một chỉ thị 2 mới để buộc PHP gửi cờ 3 khi gửi cookie phiên. Chỉnh sửa tệp 2 của bạn và thêm dòng bên dưới:
Bạn có thể thay đổi giá trị 2 thành 3 cho cookie 3.Đối với cookie phiên 8 rõ ràng, cài đặt PHP nên được sử dụng với các trích dẫn. Điều này là do trong Ini, 9 được hiểu là 0.
Đó là tùy thuộc vào các trình duyệt để giả định một giá trị mặc định. Đáng chú ý nhất, Chrome 80 trở đi sẽ giả định 7 trong trường hợp đó.Đặt cờ Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax 3 trong cookie tùy chỉnhPhp 7.3 có chữ ký chức năng mới cho setCookie (), trong đó bạn đặt cookie SameTeite tương tự như ví dụ dưới đây:
Plugin WordPressNếu bạn đang sử dụng WordPress, tôi đã kết hợp một plugin WordPress tối thiểu: trang plugin ở đây và git repo ở đây. Các bài viết gần đây về Php.WatchLaragon: Môi trường máy chủ phát triển hiện đại đơn giản, linh hoạt và hiện đại cho WindowsLaragon là một môi trường phát triển Windows hiện đại, đơn giản và linh hoạt, cung cấp hỗ trợ cho nhiều phiên bản PHP, Apache và MySQL, với thiết lập HTTPS nhanh, các mẫu ứng dụng nhanh, trình soạn thảo, NPM, và nhiều hơn nữa 16 tháng 9 năm 2022 |