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
และจะเกิดอะไรขึ้นหากบุคคลที่สามไม่แก้ไขคุกกี้ภายในวันที่A future release of Chrome will only deliver ... - เว็บไซต์ของฉันจะแตกหรือไม่ ดูเหมือนว่าวันที่ในอนาคตคือ 02/04/2020 - ไม่ไกลเกินไป
JK

1
ดังที่ @ DanielA.White ต้องได้รับการแก้ไขที่รหัสบุคคลที่สามดู คำตอบนี้สำหรับบริบทเพิ่มเติม
Hooman Bahreini

คำตอบ:


142

คำเตือนคอนโซลนี้ไม่ใช่ข้อผิดพลาดหรือเป็นปัญหาจริง - Chrome เพิ่งเผยแพร่คำเกี่ยวกับมาตรฐานใหม่นี้เพื่อเพิ่มการยอมรับนักพัฒนาซอฟต์แวร์

มันไม่มีส่วนเกี่ยวข้องกับรหัสของคุณ มันเป็นสิ่งที่เว็บเซิร์ฟเวอร์ของพวกเขาจะต้องให้การสนับสนุน

วันที่วางจำหน่ายสำหรับการแก้ไขคือ 4 กุมภาพันธ์ 2020 ต่อ: https://www.chromium.org/updates/same-site

กุมภาพันธ์ 2020:การบังคับใช้เปิดตัวสำหรับ Chrome 80 Stable: ผู้ SameSite โดยค่าเริ่มต้นและ SameSite = ไม่มี-ต้อง-Secure พฤติกรรมจะเริ่มกลิ้งออกใช้ Chrome 80 Stable สำหรับประชากร จำกัด เริ่มต้นเริ่มต้นอาทิตย์ที่17 กุมภาพันธ์ 2020ไม่รวม วันหยุดของประธานาธิบดีสหรัฐในวันจันทร์ เราจะติดตามและประเมินผลกระทบของระบบนิเวศอย่างใกล้ชิดจากระยะเริ่มต้นที่ จำกัด นี้ผ่านการเพิ่มการเปิดตัวทีละน้อย

สำหรับกำหนดการปล่อยเต็ม Chrome, ดูที่นี่

ฉันแก้ไขปัญหาเดียวกันด้วยการเพิ่มหัวข้อการตอบกลับ

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

SameSiteป้องกันเบราว์เซอร์จากการส่งคุกกี้พร้อมกับคำขอข้ามไซต์ เป้าหมายหลักคือการลดความเสี่ยงของการรั่วไหลของข้อมูลข้ามแหล่ง นอกจากนี้ยังให้ความคุ้มครองการโจมตีปลอมแปลงคำขอข้ามไซต์ ค่าที่เป็นไปได้สำหรับแฟล็กคือ Lax หรือ Strict

SameSite cookies อธิบายไว้ที่นี่

โปรดอ้างอิงสิ่งนี้ก่อนที่จะใช้ตัวเลือกใด ๆ

หวังว่านี่จะช่วยคุณได้


39
คุณได้ทำการวิจัยเกี่ยวกับวิธีการนี้ว่าสามารถจัดการได้อย่างไรเมื่อดึงสคริปต์ของบุคคลที่สามที่ตั้งค่าคุกกี้ (เช่น Google Analytics และ Google Tag Manager)
BRass

26
ฉันควรเพิ่มหัวข้อการตอบกลับที่ใด ขอบคุณ
Kris Wen

2
ถ้าบางทีคุณกำลังใช้. NET ต่อท้าย web.config หรือเพิ่มกฎ URL ReWrite ใน IIS จะแก้ไขปัญหานี้ เครดิตไปที่โซลูชันที่ stackoverflow.com/questions/38954821/…
BDarley

3
มีวิธีแก้ปัญหาที่ไม่เกี่ยวข้องกับ JavaScript หรือไม่?
posfan12

11
ฉันต้องบอกว่าคำเตือนที่เป็นมิตรจะกระตุ้น OCD ของนักพัฒนาหลายคนเช่นฉัน ความหงุดหงิดของฉันที่คอนโซลสกปรกเพิ่มขึ้นอย่างมากเมื่อฉันเห็น YouTube สถานที่ให้บริการของ Google ข้อผิดพลาดในการสร้างคอนโซลผู้กระทำความผิดใน Google Chrome .. นี่คือวิธีที่ฉันพูด
Marc

22

หากคุณกำลังทดสอบ localhost และคุณไม่สามารถควบคุมส่วนหัวการตอบกลับได้คุณสามารถปิดใช้งานได้ด้วยการตั้งค่าสถานะโครเมี่ยม

ไปที่ URL และปิดการใช้งาน: chrome: // flags / # Same-site-by-default-cookies SameSite ตามภาพหน้าจอคุกกี้เริ่มต้น

ฉันต้องปิดการใช้งานเพราะ Chrome Canary เพิ่งเริ่มบังคับใช้กฎนี้ประมาณ V 82.0.4078.2 และตอนนี้ไม่ได้ตั้งค่าคุกกี้เหล่านี้

หมายเหตุ: ฉันเปิดใช้งานการตั้งค่าสถานะนี้ใน Chrome Canary ที่ฉันใช้เพื่อการพัฒนาเท่านั้น เป็นการดีที่สุดที่จะไม่ตั้งค่าสถานะสำหรับการเรียกดู Chrome ทุกวันด้วยเหตุผลเดียวกับที่ Google แนะนำ


1
การปิดใช้งานการตั้งค่าสถานะนี้และการเรียกใช้หมู่เกาะคานารี่ไม่ทำงานสำหรับฉันดังนั้นฉันเพิ่งเพิ่ม-SameSiteในกล่อง "ตัวกรอง" หลักซึ่งฉันยังใช้เพื่อลบปัญหา sourcemap ที่น่ารำคาญนี้ => superuser.com/questions/1523427/…
รื้อถอน

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>

แอ็ตทริบิวต์ integrity และ crossorigin ใช้สำหรับการตรวจสอบ Subresource Integrity (SRI) วิธีนี้ช่วยให้เบราว์เซอร์ตรวจสอบให้แน่ใจว่าทรัพยากรที่โฮสต์บนเซิร์ฟเวอร์บุคคลที่สามไม่ได้รับการแก้ไข แนะนำให้ใช้ SRI เป็นแนวปฏิบัติที่ดีที่สุดเมื่อใดก็ตามที่โหลดไลบรารีจากแหล่งบุคคลที่สาม อ่านเพิ่มเติมได้ที่ srihash.org


srihash.orgพูดว่าน่าเสียดายที่เราไม่รู้จักโดเมนนี้
วลาด

ฉันจะหาแท็กสคริปต์ได้ที่ไหน มันอยู่ใน web.config หรือไม่?
CarlD

1
@CarlD จากข้อความแสดงข้อผิดพลาดค้นหาว่าสคริปต์ใดทำให้เกิดข้อผิดพลาดจากนั้นดูซอร์สโค้ด HTML ของหน้า
จอ

@ JohnMagnolia ฉันเพิ่งทำไปและไม่มีอะไรเกิดขึ้น
CarlD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.