Cảnh báo SameSite Chrome 77


168

Kể từ lần cập nhật trước, tôi gặp lỗi với cookie, liên quan đến thuộc tính SameSite.

Các cookie là từ các nhà phát triển bên thứ ba (Fontawgie, jQuery, Google Analytics, Google reCaptcha, Google Fonts, v.v.)

Các lỗi trong bảng điều khiển Chrome là như thế này.

A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
(index):1 A cookie associated with a cross-site resource at http://jquery.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://fontawesome.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://gstatic.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

Có bất cứ điều gì tôi cần phải làm trong máy hoặc máy chủ cục bộ của mình không hoặc chỉ là một số tính năng họ nên triển khai trong các bản phát hành tương lai của thư viện của họ?


9
không có gì để làm với mã của bạn đó là một cái gì đó máy chủ web của họ sẽ phải hỗ trợ.
Daniel A. Trắng

Tôi có cùng một vấn đề, điều này có nghĩa là chúng tôi không thể sử dụng các trang web của bên thứ ba trong mã của chúng tôi?
Love2Code

1
Bạn có thể sử dụng các thư viện mà không có bất kỳ vấn đề. Nó chỉ là một cảnh báo mà giao diện điều khiển sẽ ném cho đến khi họ thực hiện điều đó trong máy chủ của họ như @ DanielA.White đã nói trước đó.
peiblox

9
Và chính xác thì chuyện gì sẽ xảy ra nếu bên thứ 3 không sửa cookie của họ trước ngày đó A future release of Chrome will only deliver ... - trang web của tôi có bị hỏng không? Hình như ngày đó trong tương lai là 02/04/2020 - không quá xa.
JK.

1
Như được đề cập bởi @ DanielA.White, điều này cần được sửa ở mã bên thứ ba, xem câu trả lời này để biết thêm ngữ cảnh.
Hooman Bahreini

Câu trả lời:


142

Cảnh báo bảng điều khiển này không phải là lỗi hoặc sự cố thực tế - Chrome chỉ truyền bá về tiêu chuẩn mới này để tăng sự chấp nhận của nhà phát triển.

Nó không có gì để làm với mã của bạn. Đó là một cái gì đó máy chủ web của họ sẽ phải hỗ trợ.

Ngày phát hành bản sửa lỗi là ngày 4 tháng 2 năm 2020 mỗi: https://www.chromium.org/updates/same-site

Tháng 2 năm 2020: Triển khai thực thi cho Chrome 80 Ổn định: Các hành vi SameSite theo mặc định và SameSite = Không yêu cầu-Bảo mật sẽ bắt đầu triển khai cho Chrome 80 Ổn định cho dân số giới hạn ban đầu bắt đầu từ tuần 17 tháng 2 năm 2020 , ngoại trừ Ngày lễ của Tổng thống Mỹ vào thứ Hai. Chúng tôi sẽ theo dõi và đánh giá chặt chẽ tác động của hệ sinh thái từ giai đoạn giới hạn ban đầu này thông qua việc triển khai tăng dần.

Để biết lịch phát hành Chrome đầy đủ, xem tại đây .

Tôi đã giải quyết vấn đề tương tự bằng cách thêm vào tiêu đề phản hồi

response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");

SameSitengăn trình duyệt gửi cookie cùng với các yêu cầu trên nhiều trang web. Mục tiêu chính là giảm thiểu rủi ro rò rỉ thông tin có nguồn gốc chéo. Nó cũng cung cấp một số bảo vệ chống lại các cuộc tấn công giả mạo yêu cầu chéo trang. Các giá trị có thể cho cờ là Lax hoặc Strict.

Cookies SameSite giải thích ở đây

Vui lòng tham khảo điều này trước khi áp dụng bất kỳ tùy chọn.

Hy vọng điều này sẽ giúp bạn.


39
Bạn đã thực hiện bất kỳ nghiên cứu nào về cách xử lý vấn đề này khi kéo các tập lệnh của bên thứ 3 đặt cookie (như Google Analytics và Google Tag Manager) chưa?
BRass

26
Tôi nên thêm tiêu đề phản hồi ở đâu? cảm ơn.
Kris Wen

2
Nếu bạn đang sử dụng .NET, việc thêm web.config hoặc thêm các quy tắc ReWrite URL trong IIS sẽ giải quyết vấn đề này. Tín dụng đi đến giải pháp tại stackoverflow.com/questions/38954821/
Nâng

3
Có giải pháp nào không liên quan đến JavaScript không?
posfan12

11
Tôi phải nói rằng một cảnh báo thân thiện thực sự kích hoạt OCD của nhiều nhà phát triển như tôi. Sự thất vọng của tôi đối với bảng điều khiển bẩn tăng lên đáng kể khi tôi thấy YouTube, một tài sản của Google, một kẻ phạm tội tạo ra lỗi bảng điều khiển trong Google Chrome .. Đây là cách mà tôi đã nói.
Marc

22

Nếu bạn đang thử nghiệm trên localhost và bạn không kiểm soát được các tiêu đề phản hồi, bạn có thể vô hiệu hóa nó bằng cờ chrome.

Truy cập url và tắt nó: chrome: // flags / # same-site-by-default-cookies SameSite theo mặc định cookie ảnh chụp màn hình

Tôi cần phải tắt nó vì Chrome Canary mới bắt đầu thực thi quy tắc này kể từ khoảng V 82.0.4078.2 và hiện tại nó không đặt các cookie này.

Lưu ý: Tôi chỉ bật cờ này trong Chrome Canary mà tôi sử dụng để phát triển. Tốt nhất không nên bật cờ cho trình duyệt Chrome hàng ngày vì những lý do tương tự mà google đang giới thiệu.


1
Vô hiệu hóa lá cờ này và việc tái giới thiệu chim hoàng yến không làm việc đối với tôi, vì vậy tôi chỉ cần thêm -SameSitevào chính "Lọc" hộp, mà tôi cũng sử dụng để loại bỏ sourcemap vấn đề này gây phiền nhiễu => superuser.com/questions/1523427/...
Avolition

4

Để giải thích về câu trả lời của Rahul Mahadik, cách này hoạt động cho MVC5 C # .NET:

Cho phépSameSiteAttribution.cs

public class AllowSameSiteAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var response = filterContext.RequestContext.HttpContext.Response;

        if(response != null)
        {
            response.AddHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
            //Add more headers...
        }

        base.OnActionExecuting(filterContext);
    }
}

HomeControll.cs

    [AllowSameSite] //For the whole controller
    public class UserController : Controller
    {
    }

hoặc là

    public class UserController : Controller
    {
        [AllowSameSite] //For the method
        public ActionResult Index()
        {
            return View();
        }
    }

Bạn có thể vui lòng xem mã của tôi Nó cũng liên quan đến chính sách CORS của chrome. stackoverflow.com/questions/60556740/
Mạnh

4

Đã sửa lỗi bằng cách thêm crossorigin vào thẻ script.

Từ: https://code.jquery.com/

<script
  src="https://code.jquery.com/jquery-3.4.1.min.js"
  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
  crossorigin="anonymous"></script>

Các thuộc tính toàn vẹn và chéo được sử dụng để kiểm tra Subresource Integrity (SRI). Điều này cho phép các trình duyệt đảm bảo rằng tài nguyên được lưu trữ trên máy chủ của bên thứ ba không bị giả mạo. Sử dụng SRI được khuyến nghị là cách thực hành tốt nhất, bất cứ khi nào thư viện được tải từ nguồn của bên thứ ba. Đọc thêm tại srihash.org


srihash.org nói Thật không may, chúng tôi không biết tên miền này.
Vlad

Tôi tìm thẻ script ở đâu? Có trong web.config không?
CarlD

1
@CarlD từ thông báo lỗi tìm tập lệnh nào gây ra lỗi sau đó xem nguồn html của trang web
John Magnolia

@JohnMagnolia Tôi vừa làm và không có gì xảy ra.
CarlD
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.