SameSite 경고 Chrome 77


168

마지막 업데이트 이후 SameSite 속성과 관련된 쿠키에 오류가 있습니다.

쿠키는 타사 개발자 (Fontawesome, jQuery, Google Analytics, Google reCaptcha, Google Fonts 등)의 쿠키입니다.

Chrome 콘솔의 오류는 다음과 같습니다.

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.

로컬 컴퓨터 나 서버에서해야 할 일이 있습니까? 아니면 라이브러리의 향후 릴리스에서 구현해야하는 기능일까요?


9
코드와 관련이 없습니다. 웹 서버가 지원해야 할 것.
Daniel A. White

동일한 문제가 있는데, 이는 코드에서 타사 웹 사이트를 사용할 수 없다는 것을 의미합니까?
Love2Code

1
문제없이 라이브러리를 사용할 수 있습니다. @ DanielA.White가 전에 말했듯이 서버에서 서버에 구현할 때까지 콘솔이 경고합니다.
peiblox

9
그리고 제 3자가 쿠키를 수정하지 않은 날짜에 A future release of Chrome will only deliver ... 내 사이트가 중단 될 경우 어떻게됩니까? 미래 날짜가 02/04/2020 인 것 같습니다.
JK.

1
@ DanielA.White에서 언급했듯이 이것은 타사 코드로 수정해야합니다 . 자세한 내용 은 이 답변 을 참조하십시오 .
Hooman Bahreini

답변:


142

이 콘솔 경고는 오류나 실제 문제가 아닙니다. Chrome은 개발자의 채택률을 높이기 위해이 새로운 표준에 대해 널리 알리고 있습니다.

코드와 관련이 없습니다. 그것은 뭔가 자신의 웹 서버를 지원해야합니다.

수정 사항의 출시 날짜는 다음과 같이 2020 년 2 월 4 일입니다. https://www.chromium.org/updates/same-site

2020 년 2 월 : Chrome 80 안정에 대한 시행 롤아웃 : SameSite-by-default 및 SameSite = None-requires-Secure 동작은 2020 년 2 월 17 일 부터 시작되는 초기 제한 인구에 대해 Chrome 80 Stable에 롤아웃하기 시작합니다 . 월요일에 미국 대통령의 날 휴일. 점진적인 롤아웃을 통해 초기 제한 단계에서 생태계 영향을 면밀히 모니터링하고 평가할 것입니다.

전체 Chrome 출시 일정 은 여기를 참조하십시오 .

응답 헤더를 추가하여 동일한 문제를 해결했습니다.

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

SameSite브라우저가 사이트 간 요청과 함께 쿠키를 보내지 못하게합니다. 주요 목표는 출처 간 정보 유출의 위험을 줄이는 것입니다. 또한 크로스 사이트 요청 위조 공격에 대한 보호 기능도 제공합니다. 플래그의 가능한 값은 Lax 또는 Strict입니다.

SameSite 쿠키는 여기에 설명

옵션을 적용하기 전에 이것을 참조하십시오 .

이것이 도움이되기를 바랍니다.


39
쿠키를 설정하는 타사 스크립트 (예 : Google 웹 로그 분석 및 Google 태그 관리자)를 가져올 때이 문제를 어떻게 처리 할 수 ​​있는지 조사한 적이 있습니까?
BRass 2009 년

26
응답 헤더를 어디에 추가해야합니까? 감사.
Kris Wen

2
perchance가 .NET을 사용하는 경우 web.config를 추가하거나 IIS에서 URL ReWrite 규칙을 추가하면이 문제가 해결됩니다. 신용의 솔루션으로 이동 stackoverflow.com/questions/38954821/...
BDarley

3
JavaScript를 포함하지 않는 솔루션이 있습니까?
posfan12

11
나는 친절한 경고가 실제로 나와 같은 많은 개발자의 강박 장애를 유발한다고 말해야합니다. 더러운 콘솔에 대한 좌절감은 YouTube, Google 자산, Google 크롬에서 콘솔 오류를 생성하는 범죄자를 볼 때 상당히 높아집니다. 이것이 내가 말한 방식입니다.
마크

22

localhost에서 테스트 중이고 응답 헤더를 제어 할 수없는 경우 chrome 플래그를 사용하여 비활성화 할 수 있습니다.

URL을 방문하여 비활성화하십시오. chrome : // flags / # same-site-by-default-cookies 쿠키 기본 쿠키 스크린 샷

Chrome Canary가 막 약 V 82.0.4078.2부터이 규칙을 시행하기 시작하여 쿠키를 설정하지 않기 때문에 사용 중지해야합니다.

참고 : 개발에 사용하는 Chrome Canary에서만이 플래그를 설정합니다. Google이 소개하는 것과 같은 이유로 매일 Chrome을 탐색 할 때 플래그를 설정하지 않는 것이 좋습니다.


1
나는 방금 추가하므로,이 플래그를 사용하지 않도록 설정하고 카나리아 나를 위해 작동하지 않았다 다시 실행 -SameSite나는이 성가신 sourcemap 문제 => 제거하기 위해 사용되는 기본 "필터"상자에 superuser.com/questions/1523427/...
Avolition

4

Rahul Mahadik의 답변을 자세히 설명하기 위해 MVC5 C # .NET에서 작동합니다.

AllowSameSiteAttribute.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);
    }
}

HomeController.cs

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

또는

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

내 코드 좀 봐 줄래? 크롬의 CORS 정책과도 관련이 있습니다. stackoverflow.com/questions/60556740/…
Abhay salvi

4

스크립트 태그에 crossorigin을 추가하여 수정했습니다.

보낸 사람 : https://code.jquery.com/

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

무결성 및 crossorigin 속성은 SRI (Subresource Integrity) 확인에 사용됩니다. 이를 통해 브라우저는 타사 서버에서 호스팅되는 리소스가 변경되지 않도록 할 수 있습니다. 라이브러리를 타사 소스에서로드 할 때마다 SRI를 사용하는 것이 가장 좋습니다. srihash.org에서 더 읽어보기


srihash.org 는 불행히도 우리는이 도메인을 모른다고 말합니다.
블라드

스크립트 태그는 어디에 있습니까? web.config에 있습니까?
CarlD

1
@CarlD 오류 메시지에서 어떤 스크립트가 오류를 일으키는 지 확인한 다음 웹 페이지의 html 소스를보십시오
John Magnolia

@ JohnMagnolia 방금했는데 아무 일도 일어나지 않았습니다.
CarlD
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.