อ่าน 23 นาที
คุกกี้ HTTP
คุกกี้HTTP (เรียกอีกอย่างว่าคุกกี้เว็บคุกกี้อินเทอร์เน็ต คุกกี้เบราว์เซอร์หรือเรียกสั้นๆ ว่าคุกกี้ ) คือ
คุกกี้ HTTP
| ทศนิยม |
|---|
| วิธีการร้องขอ |
| ช่องส่วนหัว |
| รหัสสถานะการตอบสนอง |
| วิธีการควบคุมการเข้าถึงด้านความปลอดภัย |
| ช่องโหว่ด้านความปลอดภัย |
คุกกี้HTTP (เรียกอีกอย่างว่าคุกกี้เว็บคุกกี้อินเทอร์เน็ต คุกกี้เบราว์เซอร์หรือเรียกสั้นๆ ว่าคุกกี้ ) คือ ข้อมูลขนาดเล็กที่สร้างขึ้นโดยเว็บเซิร์ฟเวอร์ขณะที่ผู้ใช้กำลังเรียกดูเว็บไซต์และถูกจัดเก็บไว้ในคอมพิวเตอร์หรืออุปกรณ์อื่นๆ ของผู้ใช้โดยเบราว์เซอร์ ของผู้ใช้ คุกกี้จะถูกจัดเก็บไว้ในอุปกรณ์ที่ใช้ใน การเข้าถึงเว็บไซต์ และอาจมีคุกกี้มากกว่าหนึ่งรายการถูกจัดเก็บไว้ในอุปกรณ์ของผู้ใช้ในระหว่างเซสชัน
คุกกี้ทำหน้าที่ที่มีประโยชน์และบางครั้งก็จำเป็นบนเว็บคุกกี้ช่วยให้เว็บเซิร์ฟเวอร์สามารถจัดเก็บ ข้อมูล สถานะ (เช่น รายการที่เพิ่มในตะกร้าสินค้าในร้านค้าออนไลน์ ) บนอุปกรณ์ของผู้ใช้ หรือติดตามกิจกรรมการท่องเว็บของผู้ใช้ (รวมถึงการคลิกปุ่มเฉพาะการเข้าสู่ระบบหรือการบันทึกหน้าเว็บที่เคยเข้าชมในอดีต ) [ 1 ]นอกจากนี้ยังสามารถใช้เพื่อบันทึกข้อมูลที่ผู้ใช้ป้อนลงในช่องแบบฟอร์ม ก่อนหน้านี้ เช่น ชื่อ ที่อยู่ รหัสผ่านและหมายเลขบัตรชำระเงินเพื่อใช้ในภายหลัง
คุกกี้การตรวจสอบสิทธิ์มักใช้โดยเว็บเซิร์ฟเวอร์เพื่อตรวจสอบว่าผู้ใช้เข้าสู่ระบบแล้ว และเข้าสู่ระบบด้วยบัญชี ใด หากไม่มีคุกกี้ ผู้ใช้จะต้องตรวจสอบสิทธิ์ตัวเองโดยการเข้าสู่ระบบในแต่ละหน้าที่มีข้อมูลที่ละเอียดอ่อนที่พวกเขาต้องการเข้าถึง ความปลอดภัยของคุกกี้การตรวจสอบสิทธิ์โดยทั่วไปขึ้นอยู่กับความปลอดภัยของเว็บไซต์ที่ออกคุกกี้และเว็บเบราว์เซอร์ของผู้ใช้ และขึ้นอยู่กับว่าข้อมูลในคุกกี้ได้รับการเข้ารหัส หรือ ไม่ช่องโหว่ด้านความปลอดภัยอาจทำให้ข้อมูลของคุกกี้ถูกอ่านโดยผู้โจมตีนำไปใช้เพื่อเข้าถึงข้อมูลผู้ใช้หรือใช้เพื่อเข้าถึง (ด้วยข้อมูลประจำตัวของผู้ใช้) เว็บไซต์ที่คุกกี้เป็นของ (ดู ตัวอย่างการโจมตี แบบ Cross-site scriptingและCross-site request forgery ) [ 2 ]
คุกกี้ติดตามและโดยเฉพาะอย่างยิ่งคุกกี้ติดตามของบุคคลที่สามมักใช้เป็นวิธีการรวบรวมบันทึกระยะยาวของประวัติการท่องเว็บ ของแต่ละบุคคล ซึ่ง เป็นข้อกังวลด้านความเป็นส่วนตัวที่อาจเกิดขึ้นซึ่งกระตุ้นให้ผู้ร่างกฎหมายของยุโรป[ 3 ]และสหรัฐอเมริกา ดำเนินการในปี 2554 [ 4 ] [ 5 ]กฎหมายของยุโรปกำหนดให้เว็บไซต์ทั้งหมดที่กำหนดเป้าหมายไปยังประเทศสมาชิกสหภาพยุโรป ต้องได้รับ " ความยินยอมโดยแจ้งให้ทราบ " จากผู้ใช้ก่อนที่จะจัดเก็บคุกกี้ที่ไม่จำเป็นบนอุปกรณ์ของพวกเขา
พื้นหลัง
ที่มาของชื่อ
คำว่าคุกกี้ ถูกบัญญัติโดย Lou Montulliโปรแกรมเมอร์เว็บเบราว์เซอร์โดยมาจากคำว่าmagic cookieซึ่งเป็นแพ็กเก็ตข้อมูลที่โปรแกรมรับและส่งกลับโดยไม่เปลี่ยนแปลง ซึ่งใช้โดยโปรแกรมเมอร์Unix [ 6 ] [ 7 ]
ประวัติศาสตร์
คุกกี้วิเศษถูกนำมาใช้ในการคำนวณอยู่แล้วเมื่อโปรแกรมเมอร์คอมพิวเตอร์Lou Montulliมีแนวคิดที่จะใช้มันในการสื่อสารผ่านเว็บในเดือนมิถุนายน พ.ศ. 2537 [ 8 ]ในขณะนั้น เขาเป็นพนักงานของNetscape Communicationsซึ่งกำลังพัฒนา แอป พลิ เค ชันอีคอมเมิร์ซสำหรับMCI Vint CerfและJohn Klensinเป็นตัวแทนของ MCI ในการเจรจาทางเทคนิคกับ Netscape Communications MCI ไม่ต้องการให้เซิร์ฟเวอร์ต้องเก็บสถานะธุรกรรมบางส่วนไว้ ซึ่งทำให้พวกเขาขอให้ Netscape หาทางจัดเก็บสถานะนั้นไว้ในคอมพิวเตอร์ของผู้ใช้แต่ละคนแทน คุกกี้เป็นทางออกสำหรับปัญหาในการใช้งานตะกร้าสินค้าเสมือนจริงได้ อย่างน่าเชื่อถือ [ 9 ] [ 10 ]
มอนตุลลีร่วมกับจอห์น จิอันนานเดรีย เขียนข้อกำหนดคุกกี้ของเน็ตสเคปฉบับแรกในปีเดียวกันนั้น เวอร์ชัน 0.9beta ของMosaic Netscapeซึ่งวางจำหน่ายเมื่อวันที่ 13 ตุลาคม 1994 [ 11 ] [ 12 ]รองรับคุกกี้[ 10 ]การใช้งานคุกกี้ครั้งแรก (นอกห้องปฏิบัติการ) คือการตรวจสอบว่าผู้เยี่ยมชมเว็บไซต์เน็ตสเคปเคยเข้าชมเว็บไซต์มาก่อนหรือไม่ มอนตุลลีได้ยื่นขอสิทธิบัตรเทคโนโลยีคุกกี้ในปี 1995 ซึ่งได้รับอนุมัติในปี 1998 [ 13 ]การสนับสนุนคุกกี้ถูกรวมเข้ากับอินเทอร์เน็ตเอ็กซ์พลอเรอร์ในเวอร์ชัน 2 ซึ่งวางจำหน่ายในเดือนตุลาคม 1995 [ 14 ]
การนำคุกกี้มาใช้ยังไม่เป็นที่รู้จักในวงกว้างในหมู่สาธารณชนในขณะนั้น โดยเฉพาะอย่างยิ่ง คุกกี้ได้รับการยอมรับโดยค่าเริ่มต้น และผู้ใช้ไม่ได้รับการแจ้งเตือนเกี่ยวกับการมีอยู่ของคุกกี้[ 15 ]สาธารณชนได้เรียนรู้เกี่ยวกับคุกกี้หลังจากที่Financial Timesเผยแพร่บทความเกี่ยวกับคุกกี้เมื่อวันที่ 12 กุมภาพันธ์ 1996 [ 16 ]ในปีเดียวกันนั้น คุกกี้ได้รับความสนใจจากสื่อเป็นอย่างมาก โดยเฉพาะอย่างยิ่งเนื่องจากผลกระทบที่อาจเกิดขึ้นต่อความเป็นส่วนตัว คุกกี้ถูกนำมาหารือใน การพิจารณาคดีของ คณะกรรมการการค้าแห่งสหรัฐอเมริกา 2 ครั้ง ในปี 1996 และ 1997 [ 2 ]
การพัฒนาข้อกำหนดคุกกี้อย่างเป็นทางการได้ดำเนินอยู่แล้ว โดยเฉพาะอย่างยิ่ง การอภิปรายครั้งแรกเกี่ยวกับข้อกำหนดอย่างเป็นทางการเริ่มต้นในเดือนเมษายน พ.ศ. 2538 บนรายชื่อผู้รับจดหมาย www-talk มีการจัดตั้ง กลุ่มทำงานพิเศษภายในInternet Engineering Task Force (IETF) Brian Behlendorf และ David Kristol ได้เสนอทางเลือกสองทางสำหรับการนำสถานะมาใช้ในการทำธุรกรรม HTTP แต่กลุ่มซึ่งนำโดย Kristol เองและ Lou Montulli ตัดสินใจที่จะใช้ข้อกำหนดของ Netscape เป็นจุดเริ่มต้น ในเดือนกุมภาพันธ์ พ.ศ. 2539 กลุ่มทำงานได้ระบุว่าคุกกี้ของบุคคลที่สามเป็นภัยคุกคามต่อความเป็นส่วนตัวอย่างมาก ข้อกำหนดที่กลุ่มจัดทำขึ้นได้รับการเผยแพร่ในที่สุดเป็น RFC 2109 ในเดือนกุมภาพันธ์ พ.ศ. 2540 โดยระบุว่าคุกกี้ของบุคคลที่สามไม่ได้รับอนุญาตเลย หรืออย่างน้อยก็ไม่ได้เปิดใช้งานโดยค่าเริ่มต้น[ 17 ]ในเวลานี้ บริษัทโฆษณาได้ใช้คุกกี้ของบุคคลที่สามแล้ว Netscape และ Internet Explorer ไม่ได้ปฏิบัติตามคำแนะนำเกี่ยวกับคุกกี้ของบุคคลที่สามของ RFC 2109 RFC 2109 ถูกแทนที่ด้วย RFC 2965 ในเดือนตุลาคม พ.ศ. 2543
RFC 2965 เพิ่มSet-Cookie2ฟิลด์ส่วนหัวซึ่งต่อมาเรียกกันอย่างไม่เป็นทางการว่า "คุกกี้แบบ RFC 2965" ตรงข้ามกับSet-Cookieฟิลด์ส่วนหัวเดิมที่เรียกว่า "คุกกี้แบบ Netscape" [ 18 ] [ 19 ]Set-Cookie2อย่างไรก็ตาม ฟิลด์นี้ไม่ค่อยได้ใช้ และถูกยกเลิกใน RFC 6265 ในเดือนเมษายน 2011 ซึ่งเขียนขึ้นเป็นข้อกำหนดที่ชัดเจนสำหรับคุกกี้ที่ใช้ในโลกแห่งความเป็นจริง[ 20 ]ไม่มีเบราว์เซอร์สมัยใหม่ใดที่รู้จักSet-Cookie2ฟิลด์ส่วนหัวนี้[ 21 ]
ศัพท์เฉพาะ
คุกกี้เซสชัน
คุกกี้เซสชัน (หรือที่รู้จักกันในชื่อคุกกี้ในหน่วยความจำคุกกี้ชั่วคราวหรือคุกกี้ที่ไม่ถาวร ) จะมีอยู่ในหน่วยความจำชั่วคราวเท่านั้นในขณะที่ผู้ใช้กำลังเรียกดูเว็บไซต์[ 22 ] คุกกี้เซสชันจะหมดอายุหรือถูกลบเมื่อผู้ใช้ปิดเว็บเบราว์เซอร์[ 23 ]เบราว์เซอร์จะระบุคุกกี้เซสชันได้จากการที่ไม่มีการกำหนดวันหมดอายุให้กับคุกกี้เหล่านั้น
คุกกี้ถาวร
คุกกี้แบบถาวรจะหมดอายุในวันที่กำหนดหรือหลังจากระยะเวลาที่กำหนดไว้ ตลอดอายุการใช้งานที่ผู้สร้างคุกกี้กำหนดไว้ ข้อมูลของคุกกี้จะถูกส่งไปยังเซิร์ฟเวอร์ทุกครั้งที่ผู้ใช้เข้าชมเว็บไซต์ที่คุกกี้นั้นเป็นของ หรือทุกครั้งที่ผู้ใช้ดูทรัพยากรที่เป็นของเว็บไซต์นั้นจากเว็บไซต์อื่น (เช่น โฆษณา)
ด้วยเหตุนี้ คุกกี้ถาวรจึงบางครั้งเรียกว่าคุกกี้ติดตาม[ 24 ] [ 25 ]เนื่องจากผู้โฆษณาสามารถใช้คุกกี้เหล่านี้เพื่อบันทึกข้อมูลเกี่ยวกับพฤติกรรมการท่องเว็บของผู้ใช้ในช่วงระยะเวลาที่ยาวนานขึ้น นอกจากนี้ คุกกี้ถาวรยังถูกใช้ด้วยเหตุผลต่างๆ เช่น การทำให้ผู้ใช้ล็อกอินอยู่ในบัญชีบนเว็บไซต์ เพื่อหลีกเลี่ยงการป้อนข้อมูลประจำตัวการเข้าสู่ระบบซ้ำทุกครั้งที่เข้าชม
คุกกี้ที่ปลอดภัย
คุกกี้ที่ปลอดภัยสามารถส่งผ่านได้เฉพาะการเชื่อมต่อที่เข้ารหัส (เช่นHTTPS ) เท่านั้น ไม่สามารถส่งผ่านการเชื่อมต่อที่ไม่เข้ารหัส (เช่นHTTP ) ได้ ซึ่งทำให้คุกกี้มีโอกาสถูกขโมยผ่านการดักฟัง น้อยลง การทำให้คุกกี้ปลอดภัยทำได้โดยการเพิ่มSecureแฟล็กเข้าไปในคุกกี้
คุกกี้ HTTP เท่านั้น
คุกกี้แบบ http เท่านั้นไม่สามารถเข้าถึงได้โดย API ฝั่งไคลเอ็นต์ เช่นJavaScriptข้อจำกัดนี้ช่วยขจัดภัยคุกคามจากการขโมยคุกกี้ผ่านการเขียนสคริปต์ข้ามไซต์ (XSS) [ 26 ]อย่างไรก็ตาม คุกกี้ยังคงมีความเสี่ยงต่อ การโจมตี การติดตามข้ามไซต์ (XST) และการปลอมแปลงคำขอข้ามไซต์ (CSRF) คุกกี้จะได้รับคุณลักษณะนี้โดยการเพิ่มHttpOnlyแฟล็กให้กับคุกกี้
คุกกี้ไซต์เดียวกัน
ในปี 2016 Google Chromeเวอร์ชัน 51 ได้แนะนำ[ 27 ]คุกกี้ชนิดใหม่ที่มีแอตทริบิวต์SameSiteที่มีค่าที่เป็นไปได้StrictคือLaxหรือNone[ 28 ]ด้วยแอตทริบิวต์เบราว์เซอร์จะส่งคุกกี้ไปยังโดเมนเป้าหมายที่เหมือนกับโดเมนต้นทางเท่านั้น ซึ่งจะช่วยลด การโจมตี การปลอมแปลงคำขอข้ามไซต์ (CSRF) ได้อย่างมีประสิทธิภาพ ด้วยแอตทริบิวต์เบราว์เซอร์จะส่งคุกกี้พร้อมกับคำขอไปยังโดเมนเป้าหมายแม้ว่าจะแตกต่างจากโดเมนต้นทาง แต่เฉพาะสำหรับ คำขอ ที่ปลอดภัยเช่น GET (POST ไม่ปลอดภัย) และไม่ใช่คุกกี้ของบุคคลที่สาม (ภายใน iframe) แอตทริบิวต์จะอนุญาตให้ใช้คุกกี้ของบุคคลที่สาม (ข้ามไซต์) อย่างไรก็ตาม เบราว์เซอร์ส่วนใหญ่ต้องการแอตทริบิวต์ secureบนคุกกี้ SameSite=None [ 29 ]SameSite=StrictSameSite=LaxSameSite=None
คุกกี้ Same-site จะถูกรวมเข้าไว้ในร่าง RFC ฉบับใหม่สำหรับ "คุกกี้: กลไกการจัดการสถานะ HTTP" [ 30 ]เพื่ออัปเดต RFC 6265 (หากได้รับการอนุมัติ)
Chrome, Firefox และ Edge เริ่มรองรับคุกกี้ Same-site แล้ว หัวใจสำคัญของการเปิดตัวคือการจัดการคุกกี้ที่มีอยู่โดยไม่ได้กำหนดแอตทริบิวต์ SameSite ไว้ Chrome ได้จัดการคุกกี้ที่มีอยู่เหล่านั้นเสมือนว่า SameSite=None ซึ่งจะทำให้เว็บไซต์/แอปพลิเคชันทั้งหมดทำงานได้เหมือนเดิม Google ตั้งใจที่จะเปลี่ยนค่าเริ่มต้นนี้SameSite=Laxใน Chrome 80 ที่วางแผนจะวางจำหน่ายในเดือนกุมภาพันธ์ 2020 [ 31 ]แต่เนื่องจากอาจเกิดความเสียหายกับแอปพลิเคชัน/เว็บไซต์ที่พึ่งพาคุกกี้ของบุคคลที่สาม/ข้ามไซต์ และ สถานการณ์ COVID-19 Google จึงเลื่อนการเปลี่ยนแปลงนี้ไปเป็น Chrome 84 [ 32 ] [ 33 ]
ซูเปอร์คุกกี้
ซูเปอร์คุกกี้คือคุกกี้ที่มีแหล่งกำเนิดจากโดเมนระดับบนสุด (เช่น.com) หรือส่วนต่อท้ายสาธารณะ (เช่น.co.uk) ในทางตรงกันข้าม คุกกี้ทั่วไปจะมีแหล่งกำเนิดจากชื่อโดเมนเฉพาะexample.comเช่น
ซูเปอร์คุกกี้อาจเป็นภัยคุกคามด้านความปลอดภัยและมักถูกบล็อกโดยเว็บเบราว์เซอร์ หากเบราว์เซอร์ปลดบล็อก ผู้โจมตีที่ควบคุมเว็บไซต์ที่เป็นอันตรายอาจตั้งค่าซูเปอร์คุกกี้และอาจขัดขวางหรือปลอมแปลงคำขอของผู้ใช้ที่ถูกต้องไปยังเว็บไซต์อื่นที่มีโดเมนระดับบนสุดหรือส่วนต่อท้ายสาธารณะเดียวกันกับเว็บไซต์ที่เป็นอันตราย ตัวอย่างเช่น ซูเปอร์คุกกี้ที่มีต้นกำเนิดจาก.comอาจส่งผลกระทบต่อคำขอที่ส่งไปexample.comยัง แม้ว่าคุกกี้จะไม่ได้มาจาก ก็ตามexample.comซึ่งสามารถนำไปใช้ในการปลอมแปลงการเข้าสู่ระบบหรือเปลี่ยนแปลงข้อมูลผู้ใช้ได้
รายการคำต่อท้ายสาธารณะ[ 34 ]ช่วยลดความเสี่ยงที่ซูเปอร์คุกกี้ก่อให้เกิด รายการคำต่อท้ายสาธารณะเป็นโครงการริเริ่มร่วมกันระหว่างผู้จำหน่ายหลายราย โดยมีเป้าหมายเพื่อให้รายการคำต่อท้ายชื่อโดเมนที่ถูกต้องและทันสมัย เบราว์เซอร์เวอร์ชันเก่าอาจไม่มีรายการที่ทันสมัย และจะมีความเสี่ยงต่อซูเปอร์คุกกี้จากบางโดเมน[ 35 ]
การใช้งานอื่นๆ
คำว่าsupercookieยังใช้สำหรับเทคโนโลยีการติดตามที่ไม่พึ่งพาคุกกี้ HTTP ด้วย กลไก supercookie สองอย่างนี้ ถูกพบในเว็บไซต์ของ Microsoft ในเดือนสิงหาคม 2011 ได้แก่การซิงค์คุกกี้ที่สร้างคุกกี้ MUID (machine unique identifier) ขึ้นใหม่ และคุกกี้ETag [ 36 ]เนื่องจากได้รับความสนใจจากสื่อ Microsoft จึงปิดใช้งานโค้ดนี้ในภายหลัง[ 37 ]ในบทความบล็อกปี 2021 Mozilla ใช้คำว่าsupercookieเพื่ออ้างถึงการใช้แคชของเบราว์เซอร์เป็นวิธีการติดตามผู้ใช้ข้ามเว็บไซต์[ 38 ]
คุกกี้ซอมบี้
คุกกี้ซอมบี้ คือข้อมูลและโค้ดที่ เว็บเซิร์ฟเวอร์วางไว้บนคอมพิวเตอร์หรืออุปกรณ์อื่นของผู้เยี่ยมชมในตำแหน่งที่ซ่อนไว้นอกพื้นที่ จัดเก็บคุกกี้เฉพาะของ เว็บเบราว์เซอร์ ของผู้เยี่ยมชม และจะสร้างคุกกี้ HTTP ขึ้นใหม่โดยอัตโนมัติเป็นคุกกี้ปกติหลังจากที่คุกกี้เดิมถูกลบไปแล้ว คุกกี้ซอมบี้อาจถูกจัดเก็บไว้ในหลายตำแหน่ง เช่นFlash Local shared object , HTML5 Web storageและตำแหน่งฝั่งไคลเอ็นต์และแม้แต่ฝั่งเซิร์ฟเวอร์อื่นๆ และเมื่อตรวจพบว่าไม่มีอยู่ในตำแหน่งใดตำแหน่งหนึ่ง อินสแตนซ์ที่หายไปจะถูกสร้างขึ้นใหม่โดยโค้ด JavaScript โดยใช้ข้อมูลที่จัดเก็บไว้ในตำแหน่งอื่นๆ[ 39 ] [ 40 ]
โครงสร้าง
คุกกี้ประกอบด้วยส่วนประกอบดังต่อไปนี้: [ 41 ] [ 42 ] [ 43 ]
- ชื่อ
- ค่า
- แอตทริบิวต์ตั้งแต่ศูนย์ตัวขึ้นไป ( คู่ชื่อ/ค่า ) แอตทริบิวต์จะเก็บข้อมูล เช่น วันหมดอายุ โดเมน และแฟล็กของคุกกี้ (เช่น
SecureและHttpOnly)
การใช้งาน
การจัดการเซสชัน
เดิมทีคุกกี้ถูกนำมาใช้เพื่อให้ผู้ใช้สามารถบันทึกรายการที่ต้องการซื้อขณะท่องเว็บไซต์ ( ตะกร้าสินค้า เสมือนจริง ) [ 9 ] [ 10 ]อย่างไรก็ตาม ในปัจจุบัน เนื้อหาในตะกร้าสินค้าของผู้ใช้มักจะถูกจัดเก็บไว้ในฐานข้อมูลบนเซิร์ฟเวอร์ แทนที่จะเก็บไว้ในคุกกี้บนฝั่งไคลเอนต์ เพื่อติดตามว่าผู้ใช้รายใดได้รับมอบหมายให้ใช้ตะกร้าสินค้าใด เซิร์ฟเวอร์จะส่งคุกกี้ไปยังฝั่งไคลเอนต์ซึ่งมีตัวระบุเซสชันที่ไม่ซ้ำกัน (โดยทั่วไปคือสตริงยาวของตัวอักษรและตัวเลขแบบสุ่ม) เนื่องจากคุกกี้ถูกส่งไปยังเซิร์ฟเวอร์ทุกครั้งที่ไคลเอนต์ร้องขอ ตัวระบุเซสชันนั้นจะถูกส่งกลับไปยังเซิร์ฟเวอร์ทุกครั้งที่ผู้ใช้เข้าชมหน้าใหม่บนเว็บไซต์ ซึ่งจะทำให้เซิร์ฟเวอร์ทราบว่าควรแสดงตะกร้าสินค้าใดให้กับผู้ใช้
อีกหนึ่งการใช้งานคุกกี้ที่ได้รับความนิยมคือการใช้ในการล็อกอินเข้าเว็บไซต์ เมื่อผู้ใช้เข้าชมหน้าล็อกอินของเว็บไซต์ เซิร์ฟเวอร์เว็บมักจะส่งคุกกี้ที่มีตัวระบุเซสชันที่ไม่ซ้ำกันไปยังผู้ใช้ เมื่อผู้ใช้ล็อกอินสำเร็จ เซิร์ฟเวอร์จะจดจำว่าตัวระบุเซสชันนั้นได้รับการตรวจสอบแล้ว และอนุญาตให้ผู้ใช้เข้าถึงบริการต่างๆ ได้
เนื่องจากคุกกี้เซสชันมีเพียงตัวระบุเซสชันที่ไม่ซ้ำกันเท่านั้น ทำให้เว็บไซต์สามารถบันทึกข้อมูลส่วนบุคคลเกี่ยวกับผู้ใช้แต่ละคนได้แทบไม่จำกัด เว็บไซต์ไม่ถูกจำกัดด้วยขนาดของคุกกี้ นอกจากนี้ คุกกี้เซสชันยังช่วยปรับปรุงเวลาในการโหลดหน้าเว็บ เนื่องจากข้อมูลในคุกกี้เซสชันมีขนาดเล็กและใช้แบนด์วิดท์น้อย
การปรับแต่งเฉพาะบุคคล
คุกกี้สามารถใช้เพื่อจดจำข้อมูลเกี่ยวกับผู้ใช้ เพื่อแสดงเนื้อหาที่เกี่ยวข้องแก่ผู้ใช้นั้นๆ ในระยะเวลาหนึ่ง ตัวอย่างเช่น เว็บเซิร์ฟเวอร์อาจส่งคุกกี้ที่มีชื่อผู้ใช้ที่ใช้เข้าสู่ระบบเว็บไซต์ครั้งล่าสุด เพื่อให้ระบบสามารถกรอกข้อมูลโดยอัตโนมัติในครั้งต่อไปที่ผู้ใช้เข้าสู่ระบบ
เว็บไซต์หลายแห่งใช้คุกกี้เพื่อปรับแต่งเว็บไซต์ตามความต้องการของผู้ใช้ ผู้ใช้เลือกความต้องการโดยการกรอกข้อมูลในแบบฟอร์มบนเว็บและส่งแบบฟอร์มไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะเข้ารหัสความต้องการเหล่านั้นลงในคุกกี้และส่งคุกกี้กลับไปยังเบราว์เซอร์ ด้วยวิธีนี้ ทุกครั้งที่ผู้ใช้เข้าถึงหน้าเว็บ เซิร์ฟเวอร์จะสามารถปรับแต่งหน้าเว็บตามความต้องการของผู้ใช้ได้ ตัวอย่างเช่น เครื่องมือค้นหา ของ Googleเคยใช้คุกกี้เพื่อให้ผู้ใช้ (แม้แต่ผู้ที่ไม่ได้ลงทะเบียน) สามารถเลือกจำนวนผลการค้นหาต่อหน้าได้ นอกจากนี้DuckDuckGo ยัง ใช้คุกกี้เพื่อให้ผู้ใช้สามารถตั้งค่าการแสดงผล เช่น สีของหน้าเว็บได้
การติดตาม
คุกกี้ติดตามใช้เพื่อติดตามพฤติกรรมการท่องเว็บของผู้ใช้ ซึ่งสามารถทำได้ในระดับหนึ่งโดยใช้ที่อยู่ IPของคอมพิวเตอร์ที่ร้องขอหน้าเว็บหรือ ฟิลด์ refererใน ส่วนหัวของคำขอ HTTPแต่คุกกี้ช่วยให้มีความแม่นยำมากขึ้น สามารถสาธิตได้ดังนี้:
- หากผู้ใช้ร้องขอหน้าเว็บ แต่คำขอไม่มีคุกกี้ เซิร์ฟเวอร์จะสันนิษฐานว่านี่เป็นหน้าแรกที่ผู้ใช้เข้าชม ดังนั้นเซิร์ฟเวอร์จึงสร้างตัวระบุที่ไม่ซ้ำกัน (โดยทั่วไปคือสตริงของตัวอักษรและตัวเลขแบบสุ่ม) และส่งเป็นคุกกี้กลับไปยังเบราว์เซอร์พร้อมกับหน้าเว็บที่ร้องขอ
- จากนี้ไป เบราว์เซอร์จะส่งคุกกี้ไปยังเซิร์ฟเวอร์โดยอัตโนมัติทุกครั้งที่มีการร้องขอหน้าเว็บใหม่จากเว็บไซต์ เซิร์ฟเวอร์จะไม่เพียงแต่ส่งหน้าเว็บตามปกติเท่านั้น แต่ยังบันทึก URL ของหน้าเว็บที่ร้องขอ วัน/เวลาของการร้องขอ และคุกกี้ลงในไฟล์บันทึกด้วย
โดยการวิเคราะห์ไฟล์บันทึกนี้ จะทำให้สามารถค้นหาได้ว่าผู้ใช้เข้าชมหน้าเว็บใดบ้าง ตามลำดับใด และใช้เวลานานเท่าใด
บริษัทต่างๆ ใช้ประโยชน์จากพฤติกรรมการใช้งานเว็บของผู้ใช้โดยการติดตามคุกกี้เพื่อรวบรวมข้อมูลเกี่ยวกับพฤติกรรมการซื้อวอลล์สตรีทเจอร์นัลพบว่าเว็บไซต์ 50 อันดับแรกของอเมริกาติดตั้งเทคโนโลยีการติดตามโดยเฉลี่ย 64 ชิ้นลงในคอมพิวเตอร์ ส่งผลให้มีไฟล์ติดตามทั้งหมด 3,180 ไฟล์[ 44 ]จากนั้นข้อมูลเหล่านี้สามารถรวบรวมและขายให้กับบริษัทที่เสนอราคาได้
การดำเนินการ

คุกกี้คือข้อมูลที่ไม่ตายตัว โดยปกติแล้วเว็บเซิร์ฟเวอร์จะเป็นผู้เลือกและส่งคุกกี้เหล่านั้นไปยังคอมพิวเตอร์ของไคลเอ็นต์โดยเว็บเบราว์เซอร์ จากนั้นเบราว์เซอร์จะส่งคุกกี้เหล่านั้นกลับไปยังเซิร์ฟเวอร์พร้อมกับการร้องขอทุกครั้ง ทำให้เกิดสถานะ (ความทรงจำเกี่ยวกับเหตุการณ์ก่อนหน้า) ใน การทำธุรกรรม HTTP ที่โดยปกติแล้ว จะไม่มีสถานะ หากไม่มีคุกกี้ การเรียกดูหน้าเว็บหรือส่วนประกอบของหน้าเว็บแต่ละครั้งจะเป็นเหตุการณ์ที่แยกจากกัน ซึ่งส่วนใหญ่ไม่เกี่ยวข้องกับการดูหน้าเว็บอื่นๆ ทั้งหมดที่ผู้ใช้ทำบนเว็บไซต์นั้น แม้ว่าโดยปกติแล้วเว็บเซิร์ฟเวอร์จะเป็นผู้ตั้งค่าคุกกี้ แต่ไคลเอ็นต์ก็สามารถตั้งค่าคุกกี้ได้เช่นกันโดยใช้ภาษาสคริปต์ เช่นJavaScript (เว้นแต่จะมีการตั้งค่าแฟล็กของคุกกี้HttpOnlyซึ่งในกรณีนี้จะไม่สามารถแก้ไขคุกกี้ได้ด้วยภาษาสคริปต์)
ข้อกำหนดคุกกี้[ 45 ] [ 46 ]กำหนดให้เบราว์เซอร์ต้องปฏิบัติตามข้อกำหนดต่อไปนี้เพื่อรองรับคุกกี้:
- สามารถรองรับคุกกี้ที่มี ขนาดใหญ่ถึง 4,096 ไบต์
- สามารถรองรับคุกกี้ได้อย่างน้อย 50 รายการต่อโดเมน (เช่น ต่อเว็บไซต์)
- สามารถรองรับคุกกี้ได้อย่างน้อย 3,000 ชิ้น
การตั้งค่าคุกกี้
คุกกี้ถูกตั้งค่าโดยใช้Set-Cookieฟิลด์ส่วนหัวที่ส่งมาในคำตอบ HTTP จากเว็บเซิร์ฟเวอร์ ฟิลด์ส่วนหัวนี้จะสั่งให้เว็บเบราว์เซอร์จัดเก็บคุกกี้และส่งกลับไปยังเซิร์ฟเวอร์ในการร้องขอครั้งต่อไป (เบราว์เซอร์จะไม่สนใจฟิลด์ส่วนหัวนี้หากไม่รองรับคุกกี้หรือได้ปิดใช้งานคุกกี้ไว้)
ตัวอย่างเช่น เบราว์เซอร์จะส่งคำขอ HTTP ครั้งแรกไปยังหน้าแรกของwww.example.orgเว็บไซต์:
GET /index.html HTTP / 1.1 Host : www.example.org ...เซิร์ฟเวอร์จะตอบกลับด้วยSet-Cookieฟิลด์ส่วนหัวสองฟิลด์:
HTTP / 1.0 200 OK Content-type : text/html Set-Cookie : theme=light Set-Cookie : sessionToken=abc123; Expires=Wed, 9 Jun 2021 10:18:14 GMT ...การตอบสนอง HTTP ของเซิร์ฟเวอร์ประกอบด้วยเนื้อหาของหน้าแรกของเว็บไซต์ แต่ยังสั่งให้เบราว์เซอร์ตั้งค่าคุกกี้สองตัว ตัวแรกคือthemeซึ่งถือเป็นคุกกี้เซสชันเนื่องจากไม่มี แอตทริบิวต์ `session` Expiresหรือ `delete` Max-Ageคุกกี้เซสชันมีจุดประสงค์เพื่อให้เบราว์เซอร์ลบเมื่อปิดเบราว์เซอร์ ตัวที่สองคือsessionTokenซึ่งถือเป็น คุกกี้ถาวร เนื่องจากมีแอตทริบิวต์ ` transpersistent`Expiresซึ่งสั่งให้เบราว์เซอร์ลบคุกกี้ในวันที่และเวลาที่กำหนด
ถัดไป เบราว์เซอร์จะส่งคำขออีกครั้งเพื่อเข้าชมspec.htmlหน้าเว็บ คำขอนี้มีCookieฟิลด์ส่วนหัว ซึ่งประกอบด้วยคุกกี้สองตัวที่เซิร์ฟเวอร์สั่งให้เบราว์เซอร์ตั้งค่า:
GET /spec.html HTTP / 1.1 Host : www.example.org Cookie : theme=light; sessionToken=abc123 ...ด้วยวิธีนี้ เซิร์ฟเวอร์จะรู้ว่าคำขอ HTTP นี้เกี่ยวข้องกับคำขอครั้งก่อน เซิร์ฟเวอร์จะตอบกลับโดยการส่งหน้าเว็บที่ร้องขอ โดยอาจรวมSet-Cookieฟิลด์ส่วนหัวเพิ่มเติมในคำตอบ HTTP เพื่อสั่งให้เบราว์เซอร์เพิ่มคุกกี้ใหม่ แก้ไขคุกกี้ที่มีอยู่ หรือลบคุกกี้ที่มีอยู่ หากต้องการลบคุกกี้ เซิร์ฟเวอร์ต้องรวมSet-Cookieฟิลด์ส่วนหัวที่มีวันหมดอายุในอดีต
ค่าของคุกกี้อาจประกอบด้วยอักขระASCII! ที่พิมพ์ได้ทุกตัว ( ตั้งแต่ 0 ถึง 1 ~, Unicode\u0021ถึง 1 \u007E) ยกเว้นอักขระ, 0 และ;1 และ ช่องว่าง ชื่อของคุกกี้จะยกเว้นอักขระเดียวกันนี้ รวมถึง 0 ด้วยเนื่องจากเป็นตัวคั่นระหว่างชื่อและค่า มาตรฐานคุกกี้ RFC 2965 มีข้อจำกัดมากกว่านี้ แต่เบราว์เซอร์ยังไม่ได้นำไปใช้ =
บางครั้ง คำว่า"เศษคุกกี้"ถูกใช้เพื่ออ้างถึงคู่ชื่อ-ค่าของคุกกี้[ 47 ]
คุกกี้ยังสามารถตั้งค่าได้โดยใช้ภาษาสคริปต์ เช่นJavaScriptที่ทำงานภายในเบราว์เซอร์ ใน JavaScript document.cookieจะใช้ออบเจ็กต์เพื่อจุดประสงค์นี้ ตัวอย่างเช่น คำสั่งนี้สร้างdocument.cookie = "temperature=20"คุกกี้ชื่อtemperatureและค่า20 [ 48 ]
คุณลักษณะของคุกกี้
นอกจากชื่อและค่าแล้ว คุกกี้ยังสามารถมีแอตทริบิวต์ได้อีกหนึ่งอย่างหรือมากกว่านั้น เบราว์เซอร์จะไม่รวมแอตทริบิวต์ของคุกกี้ในคำขอที่ส่งไปยังเซิร์ฟเวอร์ แต่จะส่งเฉพาะชื่อและค่าของคุกกี้เท่านั้น เบราว์เซอร์ใช้แอตทริบิวต์ของคุกกี้เพื่อพิจารณาว่าควรลบคุกกี้ บล็อกคุกกี้ หรือควรส่งคุกกี้ไปยังเซิร์ฟเวอร์หรือไม่
โดเมนและเส้นทาง
แอตทริบิวต์Domain` Path< your_ example.org... foo.comexample.orgfoo.com
หาก เซิร์ฟเวอร์ไม่ได้ระบุแอตทริบิวต์ของคุกกี้ ค่าเริ่มต้นจะเป็นโดเมนและพาธของทรัพยากรที่ร้องขอDomain[ 49 ]อย่างไรก็ตามในเบราว์เซอร์ส่วนใหญ่มีความแตกต่างระหว่างคุกกี้ที่ตั้งค่าโดยไม่มีโดเมนและคุกกี้ที่ตั้งค่าโดยมีโดเมน ในกรณีแรก คุกกี้จะถูกส่งเฉพาะสำหรับการร้องขอไปยัง ซึ่งเรียกว่าคุกกี้แบบโฮสต์เท่านั้น ในกรณีหลัง โดเมนย่อยทั้งหมดจะถูกรวมอยู่ด้วย (ตัวอย่างเช่น) [ 50 ] [ 51 ]ข้อยกเว้นที่น่าสังเกตสำหรับกฎทั่วไปนี้คือ Edge ก่อน Windows 10 RS3 และ Internet Explorer ก่อน IE 11 และ Windows 10 RS4 (เมษายน 2018) ซึ่งจะส่งคุกกี้ไปยังโดเมนย่อยเสมอ โดยไม่คำนึงว่าคุกกี้จะถูกตั้งค่าโดยมีหรือไม่มีโดเมน[ 52 ]Pathfoo.comfoo.comfoo.comdocs.foo.com
ด้านล่างนี้คือตัวอย่างของSet-Cookieฟิลด์ส่วนหัวบางส่วนในคำตอบ HTTP ของเว็บไซต์หลังจากผู้ใช้ล็อกอินเข้าสู่ระบบแล้ว คำขอ HTTP ถูกส่งไปยังเว็บเพจภายในdocs.foo.comโดเมนย่อย:
HTTP / 1.0 200 OK ตั้งค่าคุกกี้: LSID=DQAAAK…Eaem_vYg; เส้นทาง=/accounts; หมดอายุ=พุธ, 13 ม.ค. 2021 22:23:01 GMT; ปลอดภัย; HttpOnly ตั้งค่าคุกกี้: HSID=AYQEVn…DKrdst; โดเมน=.foo.com; เส้นทาง=/; หมดอายุ=พุธ, 13 ม.ค. 2021 22:23:01 GMT; HttpOnly ตั้งค่าคุกกี้: SSID=Ap4P…GTEq; โดเมน=foo.com; เส้นทาง=/; หมดอายุ=พุธ, 13 ม.ค. 2021 22:23:01 GMT; ปลอดภัย; HttpOnly ...คุกกี้ตัวแรกLSIDไม่มีDomainแอตทริบิวต์ และมีPathแอตทริบิวต์ที่ตั้งค่าเป็น/accountsซึ่งจะบอกเบราว์เซอร์ให้ใช้คุกกี้เฉพาะเมื่อร้องขอหน้าเว็บที่อยู่ในdocs.foo.com/accounts(โดเมนได้มาจากโดเมนที่ร้องขอ) คุกกี้อีกสองตัวHSIDและSSIDจะถูกใช้เมื่อเบราว์เซอร์ร้องขอโดเมนย่อยใดๆ ใน.foo.comบนเส้นทางใดๆ (ตัวอย่างเช่นwww.foo.com/bar) จุดนำหน้าเป็นตัวเลือกในมาตรฐานล่าสุด แต่สามารถเพิ่มเพื่อความเข้ากันได้กับการใช้งานตาม RFC 2109 [ 53 ]
วันหมดอายุและอายุสูงสุด
คุณลักษณะ นี้Expiresกำหนดวันที่และเวลาที่เฉพาะเจาะจงสำหรับเวลาที่เบราว์เซอร์ควรลบคุกกี้ วันที่และเวลาจะระบุในรูปแบบWdy, DD Mon YYYY HH:MM:SS GMTหรือในรูปแบบWdy, DD Mon YY HH:MM:SS GMTสำหรับค่า YY โดยที่ YY มากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับ 69 [ 54 ]
อีกทางเลือกหนึ่งคือMax-Ageสามารถใช้แอตทริบิวต์นี้เพื่อกำหนดวันหมดอายุของคุกกี้เป็นช่วงเวลาเป็นวินาทีในอนาคต โดยอ้างอิงจากเวลาที่เบราว์เซอร์ได้รับคุกกี้ ด้านล่างนี้คือตัวอย่างของSet-Cookieฟิลด์ส่วนหัวสามฟิลด์ที่ได้รับจากเว็บไซต์หลังจากผู้ใช้เข้าสู่ระบบ:
HTTP / 1.0 200 OK Set-Cookie : lu=Rg3vHJZnehYLjVg7qi3bZjzg; Expires=Tue, 15 Jan 2013 21:47:38 GMT; Path=/; Domain=.example.com; HttpOnly Set-Cookie : made_write_conn=1295214458; Path=/; Domain=.example.com Set-Cookie : reg_fb_gate=deleted; Expires=Thu, 1 Jan 1970 00:00:01 GMT; Path=/; Domain=.example.com; HttpOnlyคุกกี้ตัวแรกluจะหมดอายุในวันที่ 15 มกราคม 2556 เบราว์เซอร์ของลูกค้าจะใช้งานคุกกี้นี้จนถึงเวลานั้น คุกกี้ตัวที่สองmade_write_connไม่มีวันหมดอายุ จึงเป็นคุกกี้แบบเซสชัน คุกกี้นี้จะถูกลบหลังจากผู้ใช้ปิดเบราว์เซอร์ คุกกี้ตัวที่สามreg_fb_gateมีค่าเป็น "ลบแล้ว"โดยมีเวลาหมดอายุในอดีต เบราว์เซอร์จะลบคุกกี้นี้ทันทีเนื่องจากเวลาหมดอายุอยู่ในอดีต โปรดทราบว่าคุกกี้จะถูกลบก็ต่อเมื่อแอตทริบิวต์โดเมนและพาธในSet-Cookieฟิลด์ตรงกับค่าที่ใช้เมื่อสร้างคุกกี้เท่านั้น
ณ ปี 2016 Internet Explorer ยังไม่Max-Ageรองรับ[ 55 ] [ 56 ]
ปลอดภัยและใช้ HTTP เท่านั้น
แอตทริบิวต์Secure`and` HttpOnlyไม่มีค่าที่เกี่ยวข้อง แต่การปรากฏของชื่อแอตทริบิวต์เพียงอย่างเดียวบ่งชี้ว่าควรเปิดใช้งานพฤติกรรมของแอตทริบิวต์เหล่านั้น
คุณลักษณะ นี้Secureมีจุดประสงค์เพื่อจำกัดการสื่อสารของคุกกี้ให้อยู่เฉพาะการส่งผ่านแบบเข้ารหัส โดยสั่งให้เบราว์เซอร์ใช้คุกกี้ผ่าน การเชื่อมต่อ ที่ปลอดภัย/เข้ารหัส เท่านั้น อย่างไรก็ตาม หากเว็บเซิร์ฟเวอร์ตั้งค่าคุกกี้ที่มีคุณลักษณะ Secure จากการเชื่อมต่อที่ไม่ปลอดภัย คุกกี้ก็ยังสามารถถูกดักจับได้เมื่อส่งไปยังผู้ใช้โดยการโจมตีแบบ Man-in-the-Middleดังนั้น เพื่อความปลอดภัยสูงสุด ควรตั้งค่าคุกกี้ที่มีคุณลักษณะ Secure ผ่านการเชื่อมต่อที่ปลอดภัยเท่านั้น
คุณลักษณะ นี้HttpOnlyสั่งให้เบราว์เซอร์ไม่เปิดเผยคุกกี้ผ่านช่องทางอื่นนอกเหนือจากคำขอ HTTP (และ HTTPS) ซึ่งหมายความว่าคุกกี้จะไม่สามารถเข้าถึงได้ผ่านภาษาสคริปต์ฝั่งไคลเอ็นต์ (โดยเฉพาะJavaScript ) และด้วยเหตุนี้จึงไม่สามารถถูกขโมยได้ง่ายผ่านการโจมตีแบบ Cross-Site Scripting (ซึ่งเป็นเทคนิคการโจมตีที่แพร่หลาย) [ 57 ]
การตั้งค่าเบราว์เซอร์
เบราว์เซอร์สมัยใหม่ส่วนใหญ่รองรับคุกกี้และอนุญาตให้ผู้ใช้ปิดใช้งานได้ ตัวเลือกทั่วไปมีดังนี้: [ 58 ]
- เพื่อเปิดหรือปิดใช้งานคุกกี้โดยสมบูรณ์ เพื่อให้ระบบยอมรับหรือบล็อกคุกกี้อยู่เสมอ
- เพื่อดูและลบคุกกี้บางส่วนโดยใช้โปรแกรมจัดการคุกกี้
- เพื่อลบข้อมูลส่วนตัวทั้งหมดอย่างสมบูรณ์ รวมถึงคุกกี้ด้วย
นอกจากนี้ยังมีเครื่องมือเสริมสำหรับการจัดการสิทธิ์คุกกี้อีกด้วย[ 59 ] [ 60 ] [ 61 ] [ 62 ]
คุกกี้ของบุคคลที่สาม
คุกกี้มีผลกระทบสำคัญต่อความเป็นส่วนตัวและการไม่เปิดเผยตัวตนของผู้ใช้งานเว็บ แม้ว่าคุกกี้จะถูกส่งไปยังเซิร์ฟเวอร์ที่ตั้งค่าคุกกี้หรือเซิร์ฟเวอร์ในโดเมนอินเทอร์เน็ตเดียวกันเท่านั้น แต่หน้าเว็บอาจมีรูปภาพหรือส่วนประกอบอื่นๆ ที่จัดเก็บไว้บนเซิร์ฟเวอร์ในโดเมนอื่น คุกกี้ที่ถูกตั้งค่าระหว่างการดึงข้อมูลส่วนประกอบเหล่านี้เรียกว่าคุกกี้ของบุคคลที่สามคุกกี้ของบุคคลที่สามเป็นของโดเมนที่แตกต่างจากที่แสดงในแถบที่อยู่ คุกกี้ประเภทนี้มักปรากฏขึ้นเมื่อหน้าเว็บมีเนื้อหาจากเว็บไซต์ภายนอก เช่นโฆษณาแบนเนอร์ซึ่งเปิดโอกาสให้สามารถติดตามประวัติการท่องเว็บของผู้ใช้ และผู้โฆษณาใช้ข้อมูลนี้เพื่อแสดงโฆษณาที่เกี่ยวข้องกับผู้ใช้แต่ละราย

ยกตัวอย่างเช่น สมมติว่าผู้ใช้เข้าชมwww.example.orgเว็บไซต์ เว็บไซต์นี้มีโฆษณาจากad.foxytracking.comซึ่งเมื่อดาวน์โหลดแล้ว จะตั้งค่าคุกกี้ที่เกี่ยวข้องกับโดเมนของโฆษณา ( ad.foxytracking.com) จากนั้น ผู้ใช้เข้าชมเว็บไซต์อื่นwww.foo.comซึ่งมีโฆษณาจากad.foxytracking.comและตั้งค่าคุกกี้ที่เกี่ยวข้องกับโดเมนนั้น ( ad.foxytracking.com) ในที่สุด คุกกี้ทั้งสองนี้จะถูกส่งไปยังผู้ลงโฆษณาเมื่อโหลดโฆษณาหรือเข้าชมเว็บไซต์ของพวกเขา ผู้ลงโฆษณาสามารถใช้คุกกี้เหล่านี้เพื่อสร้างประวัติการเข้าชมของผู้ใช้ในทุกเว็บไซต์ที่มีโฆษณาจากผู้ลงโฆษณารายนี้ โดยใช้ฟิลด์ส่วนหัว HTTP referer
ณ ปี 2014 เว็บไซต์บางแห่งตั้งค่าคุกกี้ที่สามารถอ่านได้จากโดเมนของบุคคลที่สามมากกว่า 100 โดเมน[ 63 ]โดยเฉลี่ยแล้ว เว็บไซต์หนึ่งๆ จะตั้งค่าคุกกี้ 10 รายการ โดยมีจำนวนคุกกี้สูงสุด (ทั้งของบุคคลที่หนึ่งและบุคคลที่สาม) มากกว่า 800 รายการ[ 64 ]
มาตรฐานคุกกี้รุ่นเก่า RFC 2109 [ 17 ]และ RFC 2965 แนะนำว่าเบราว์เซอร์ควรปกป้องความเป็นส่วนตัวของผู้ใช้และไม่อนุญาตให้แชร์คุกกี้ระหว่างเซิร์ฟเวอร์โดยค่าเริ่มต้น อย่างไรก็ตาม มาตรฐานใหม่กว่า RFC 6265 อนุญาตให้ตัวแทนผู้ใช้สามารถใช้นโยบายคุกกี้ของบุคคลที่สามได้ตามต้องการ เบราว์เซอร์เว็บสมัยใหม่ส่วนใหญ่มีการตั้งค่าความเป็นส่วนตัวที่สามารถบล็อกคุกกี้ของบุคคลที่สามได้ ตั้งแต่ปี 2020 Apple Safari [ 65 ] Firefox [ 66 ] และ Brave [ 67 ] บล็อกคุกกี้ของบุคคลที่สามทั้งหมดโดยค่าเริ่มต้น Safari อนุญาตให้เว็บไซต์ฝังตัวใช้ Storage Access API เพื่อขออนุญาตในการตั้งค่าคุกกี้ของบุคคลที่หนึ่ง ในเดือนพฤษภาคม 2020 Google Chrome 83 ได้แนะนำคุณสมบัติใหม่เพื่อบล็อกคุกกี้ของบุคคลที่สามโดยค่าเริ่มต้นในโหมดไม่ระบุตัวตนสำหรับการเรียกดูแบบส่วนตัว ทำให้การบล็อกเป็นทางเลือกในระหว่างการเรียกดูตามปกติ การอัปเดตเดียวกันนี้ยังเพิ่มตัวเลือกในการบล็อกคุกกี้ของบุคคลที่หนึ่งด้วย[ 68 ]ในเดือนเมษายน พ.ศ. 2567 Chrome ได้เลื่อนการบล็อกคุกกี้ของบุคคลที่สามโดยค่าเริ่มต้นไปเป็นปี พ.ศ. 2568 [ 69 ]ในเดือนกรกฎาคม พ.ศ. 2567 Google ได้ประกาศแผนที่จะหลีกเลี่ยงการบล็อกคุกกี้ของบุคคลที่สามโดยค่าเริ่มต้น และจะแจ้งเตือนผู้ใช้ให้ยอมรับคุกกี้ของบุคคลที่สามแทน[ 70 ]
ความเป็นส่วนตัว
ความเป็นไปได้ในการสร้างโปรไฟล์ของผู้ใช้ถือเป็นภัยคุกคามต่อความเป็นส่วนตัว โดยเฉพาะอย่างยิ่งเมื่อมีการติดตามข้ามหลายโดเมนโดยใช้คุกกี้ของบุคคลที่สาม ด้วยเหตุนี้ บางประเทศจึงมีกฎหมายเกี่ยวกับคุกกี้
ผู้ให้บริการเว็บไซต์ที่ไม่เปิดเผยการใช้คุกกี้ของบุคคลที่สามแก่ผู้บริโภคมีความเสี่ยงที่จะทำลายความไว้วางใจของผู้บริโภคหากมีการค้นพบการใช้คุกกี้ การเปิดเผยข้อมูลที่ชัดเจน (เช่นในนโยบายความเป็นส่วนตัว ) มีแนวโน้มที่จะขจัดผลกระทบเชิงลบใด ๆ จากการค้นพบการใช้คุกกี้ดังกล่าว[ 71 ]
รัฐบาลสหรัฐอเมริกาได้กำหนดกฎเกณฑ์ที่เข้มงวดเกี่ยวกับการตั้งค่าคุกกี้ในปี 2000 หลังจากที่มีการเปิดเผยว่าสำนักงานนโยบายยาเสพติดของ ทำเนียบขาว ใช้คุกกี้เพื่อติดตามผู้ใช้คอมพิวเตอร์ที่เข้าชมโฆษณาต่อต้านยาเสพติดออนไลน์ ในปี 2002 นักเคลื่อนไหวเพื่อความเป็นส่วนตัว แดเนียล แบรนด์ท พบว่าซีไอเอได้ทิ้งคุกกี้ถาวรไว้ในคอมพิวเตอร์ที่เข้าชมเว็บไซต์ของตน เมื่อได้รับแจ้งว่าเป็นการละเมิดนโยบาย ซีไอเอระบุว่าคุกกี้เหล่านี้ไม่ได้ถูกตั้งค่าโดยเจตนาและได้หยุดการตั้งค่า ในวันที่ 25 ธันวาคม 2005 แบรนด์ทค้นพบว่าสำนักงานความมั่นคงแห่งชาติ (NSA) ได้ทิ้งคุกกี้ถาวรสองตัวไว้ในคอมพิวเตอร์ของผู้เข้าชมเนื่องจากการอัปเกรดซอฟต์แวร์ หลังจากได้รับแจ้ง NSA ได้ปิดใช้งานคุกกี้ทันที[ 72 ]
คำสั่งเกี่ยวกับคุกกี้ของสหภาพยุโรป
ในปี พ.ศ. 2545 สหภาพยุโรปได้ออกคำสั่งเกี่ยวกับความเป็นส่วนตัวและการสื่อสารทางอิเล็กทรอนิกส์ (คำสั่ง e-Privacy) ซึ่งเป็นนโยบายที่กำหนดให้ต้องได้รับความยินยอมจากผู้ใช้ปลายทางสำหรับการวางคุกกี้และเทคโนโลยีที่คล้ายคลึงกันสำหรับการจัดเก็บและการเข้าถึงข้อมูลบนอุปกรณ์ของผู้ใช้[ 73 ] [ 74 ]โดยเฉพาะอย่างยิ่ง มาตรา 5 วรรค 3 กำหนดว่าการจัดเก็บข้อมูลที่ไม่จำเป็นทางเทคนิคบนคอมพิวเตอร์ของผู้ใช้สามารถกระทำได้ก็ต่อเมื่อผู้ใช้ได้รับข้อมูลเกี่ยวกับวิธีการใช้ข้อมูลนี้ และผู้ใช้มีโอกาสที่จะปฏิเสธการดำเนินการจัดเก็บข้อมูลนี้ คำสั่งดังกล่าวไม่ได้กำหนดให้ผู้ใช้ต้องอนุญาตหรือได้รับแจ้งเกี่ยวกับการใช้คุกกี้ที่จำเป็นสำหรับการให้บริการที่พวกเขาร้องขอ ตัวอย่างเช่น การเก็บรักษาการตั้งค่า การจัดเก็บเซสชันการเข้าสู่ระบบ หรือการจดจำสิ่งที่มีอยู่ในตะกร้าสินค้าของผู้ใช้[ 75 ]
ในปี 2552 กฎหมายได้รับการแก้ไขโดยคำสั่ง 2009/136/EC ซึ่งรวมถึงการเปลี่ยนแปลงในมาตรา 5 วรรค 3 แทนที่จะให้ผู้ใช้มีตัวเลือกในการยกเลิกการจัดเก็บคุกกี้ คำสั่งที่แก้ไขแล้วกำหนดให้ต้องได้รับความยินยอมสำหรับการจัดเก็บคุกกี้[ 74 ]คำจำกัดความของความยินยอมมีการอ้างอิงโยงไปยังคำจำกัดความในกฎหมายคุ้มครองข้อมูลของยุโรป โดยเริ่มจากคำสั่งคุ้มครองข้อมูลปี 1995 และต่อมาคือระเบียบการคุ้มครองข้อมูลทั่วไป (GDPR) เนื่องจากคำจำกัดความของความยินยอมได้รับการเสริมความแข็งแกร่งในข้อความของ GDPR ทำให้คุณภาพของความยินยอมที่จำเป็นสำหรับผู้ที่จัดเก็บและเข้าถึงข้อมูล เช่น คุกกี้ บนอุปกรณ์ของผู้ใช้เพิ่มขึ้น อย่างไรก็ตาม ในคดีที่ตัดสินภายใต้คำสั่งคุ้มครองข้อมูลศาลยุติธรรมแห่งสหภาพยุโรปได้ยืนยันในภายหลังว่ากฎหมายก่อนหน้านี้หมายความถึงคุณภาพของความยินยอมที่แข็งแกร่งเช่นเดียวกับเครื่องมือปัจจุบัน[ 76 ]นอกเหนือจากข้อกำหนดเรื่องความยินยอมที่เกิดจากการจัดเก็บหรือเข้าถึงข้อมูลบนอุปกรณ์ปลายทางของผู้ใช้แล้ว ข้อมูลในคุกกี้จำนวนมากจะถือเป็นข้อมูลส่วนบุคคลภายใต้ GDPR เพียงอย่างเดียว และจะต้องมีพื้นฐานทางกฎหมายในการประมวลผล นี่เป็นกรณีเช่นนี้มาตั้งแต่คำสั่งคุ้มครองข้อมูลปี 1995 ซึ่งใช้คำจำกัดความของข้อมูลส่วนบุคคลที่เหมือนกัน แม้ว่า GDPR ในคำอธิบายประกอบข้อ 30 จะชี้แจงว่าตัวระบุคุกกี้รวมอยู่ด้วยก็ตาม แม้ว่าการประมวลผลข้อมูลทั้งหมดภายใต้ GDPR จะไม่จำเป็นต้องได้รับความยินยอม แต่ลักษณะของการโฆษณาตามพฤติกรรมหมายความว่าเป็นการยากหรือเป็นไปไม่ได้ที่จะให้เหตุผลภายใต้พื้นฐานอื่นใด[ 77 ] [ 78 ]
การยินยอมภายใต้การรวมกันของ GDPR และคำสั่ง e-Privacy ต้องเป็นไปตามเงื่อนไขหลายประการที่เกี่ยวข้องกับคุกกี้[ 79 ]ต้องให้โดยสมัครใจและไม่คลุมเครือ: กล่องที่ถูกทำเครื่องหมายไว้ล่วงหน้าถูกห้ามภายใต้ทั้งคำสั่งคุ้มครองข้อมูลปี 1995 [ 76 ]และ GDPR (ข้อความอ้างอิง 32) [ 80 ] GDPR ระบุอย่างชัดเจนว่าการยินยอมต้อง 'ถอนได้ง่ายพอๆ กับการให้' [ 80 ]หมายความว่าปุ่มปฏิเสธทั้งหมดต้องเข้าถึงได้ง่ายในแง่ของการคลิกและการมองเห็นเช่นเดียวกับปุ่ม 'ยอมรับทั้งหมด' [ 79 ]ต้องมีความเฉพาะเจาะจงและได้รับข้อมูลครบถ้วน หมายความว่าการยินยอมเกี่ยวข้องกับวัตถุประสงค์เฉพาะสำหรับการใช้ข้อมูลนี้ และองค์กรทั้งหมดที่ต้องการใช้การยินยอมนี้ต้องระบุชื่ออย่างชัดเจน[ 81 ] [ 82 ]ศาลยุติธรรมแห่งสหภาพยุโรปยังได้ตัดสินว่าการยินยอมต้อง 'มีประสิทธิภาพและทันท่วงที' หมายความว่าต้องได้รับก่อนที่จะมีการวางคุกกี้และเริ่มการประมวลผลข้อมูล แทนที่จะเป็นหลังจากนั้น[ 83 ]
การตอบสนองของอุตสาหกรรมส่วนใหญ่เป็นไปในเชิงลบ โรเบิร์ต บอนด์ จากสำนักงานกฎหมาย Speechly Bircham อธิบายผลกระทบว่า "กว้างขวางและยุ่งยากอย่างเหลือเชื่อ" สำหรับ "บริษัทในสหราชอาณาจักรทั้งหมด" ไซมอน เดวิส จากPrivacy Internationalโต้แย้งว่าการบังคับใช้ที่เหมาะสมจะ "ทำลายอุตสาหกรรมทั้งหมด" [ 84 ]อย่างไรก็ตาม นักวิชาการตั้งข้อสังเกตว่าลักษณะที่ยุ่งยากของป๊อปอัพคุกกี้เกิดจากความพยายามที่จะดำเนินธุรกิจต่อไปผ่านคำขอที่ซับซ้อนซึ่งอาจไม่สอดคล้องกับ GDPR [ 77 ]
การศึกษาเชิงวิชาการและหน่วยงานกำกับดูแลต่างก็อธิบายถึงการไม่ปฏิบัติตามกฎหมายอย่างแพร่หลาย การศึกษาที่รวบรวมข้อมูลจากเว็บไซต์ในสหราชอาณาจักรจำนวน 10,000 แห่ง พบว่ามีเพียง 11.8% ของเว็บไซต์เท่านั้นที่ปฏิบัติตามข้อกำหนดทางกฎหมายขั้นต่ำ และมีเพียง 33.4% ของเว็บไซต์ที่ศึกษาเท่านั้นที่มีกลไกในการปฏิเสธคุกกี้ที่ใช้งานง่ายเหมือนกับการยอมรับคุกกี้[ 79 ]การศึกษาเว็บไซต์จำนวน 17,000 แห่ง พบว่า 84% ของเว็บไซต์ละเมิดเกณฑ์นี้ นอกจากนี้ยังพบว่าหลายเว็บไซต์ใช้คุกกี้ของบุคคลที่สามโดยไม่มีการแจ้งให้ทราบล่วงหน้าเลย[ 85 ]หน่วยงานกำกับดูแลของสหราชอาณาจักร สำนักงาน คณะกรรมการข้อมูลข่าวสาร ( Information Commissioner's Office ) ระบุในปี 2019 ว่า 'กรอบความโปร่งใสและการยินยอม' ของอุตสาหกรรมจากกลุ่มเทคโนโลยีการโฆษณาInteractive Advertising Bureauนั้น 'ไม่เพียงพอที่จะรับประกันความโปร่งใสและการประมวลผลข้อมูลส่วนบุคคลที่เกี่ยวข้องอย่างเป็นธรรม และด้วยเหตุนี้จึงไม่เพียงพอที่จะให้ความยินยอมโดยสมัครใจและมีข้อมูลครบถ้วน ซึ่งส่งผลกระทบต่อการปฏิบัติตาม PECR [e-Privacy]' [ 81 ]บริษัทหลายแห่งที่จำหน่ายโซลูชันการปฏิบัติตามกฎระเบียบ (แพลตฟอร์มการจัดการความยินยอม) อนุญาตให้กำหนดค่าในลักษณะที่ผิดกฎหมายอย่างชัดเจน ซึ่งนักวิชาการได้ตั้งข้อสังเกตว่าก่อให้เกิดคำถามเกี่ยวกับการจัดสรรความรับผิดที่เหมาะสม[ 86 ]
มีการเสนอ ข้อกำหนดW3Cที่เรียกว่าP3Pสำหรับเซิร์ฟเวอร์ในการสื่อสารนโยบายความเป็นส่วนตัวไปยังเบราว์เซอร์ โดยอนุญาตให้จัดการโดยอัตโนมัติและผู้ใช้สามารถกำหนดค่าได้ อย่างไรก็ตาม มีเว็บไซต์เพียงไม่กี่แห่งที่นำข้อกำหนดนี้ไปใช้ และ W3C ก็ได้ยุติการทำงานเกี่ยวกับข้อกำหนดนี้แล้ว[ 87 ]
เบราว์เซอร์ส่วนใหญ่สามารถบล็อกคุกกี้ของบุคคลที่สามได้ เพื่อเพิ่มความเป็นส่วนตัวและลดการติดตามโดยบริษัทโฆษณาและบริษัทติดตาม โดยไม่ส่งผลเสียต่อประสบการณ์การใช้งานเว็บของผู้ใช้ในทุกเว็บไซต์ บางเว็บไซต์ใช้ 'กำแพงคุกกี้' ซึ่งทำให้การเข้าถึงเว็บไซต์ขึ้นอยู่กับการอนุญาตคุกกี้ ไม่ว่าจะโดยทางเทคนิคในเบราว์เซอร์ ผ่านการกด 'ยอมรับ' หรือทั้งสองอย่าง[ 88 ]ในปี 2020 คณะกรรมการคุ้มครองข้อมูลแห่งยุโรปซึ่งประกอบด้วยหน่วยงานกำกับดูแลการคุ้มครองข้อมูลของสหภาพยุโรปทั้งหมด ได้ระบุว่ากำแพงคุกกี้เป็นสิ่งผิดกฎหมาย
เพื่อให้การยินยอมสามารถกระทำได้อย่างอิสระ การเข้าถึงบริการและฟังก์ชันการทำงานจะต้องไม่ขึ้นอยู่กับการยินยอมของผู้ใช้ในการจัดเก็บข้อมูล หรือการเข้าถึงข้อมูลที่จัดเก็บไว้แล้วในอุปกรณ์ปลายทางของผู้ใช้ (ที่เรียกว่ากำแพงคุกกี้) [ 89 ]
ผู้ให้บริการโฆษณาจำนวนมากมีตัวเลือกในการยกเลิกการโฆษณาตามพฤติกรรม โดยใช้คุกกี้ทั่วไปในเบราว์เซอร์เพื่อหยุดการโฆษณาตามพฤติกรรม[ 90 ] [ 91 ]อย่างไรก็ตาม วิธีนี้มักไม่ได้ผลกับรูปแบบการติดตามหลายรูปแบบ เช่น การติดตามบุคคลที่หนึ่งซึ่งกำลังได้รับความนิยมมากขึ้นเพื่อหลีกเลี่ยงผลกระทบจากการที่เบราว์เซอร์บล็อกคุกกี้ของบุคคลที่สาม[ 92 ] [ 93 ]นอกจากนี้ หากการตั้งค่าดังกล่าวทำได้ยากกว่าการยอมรับการติดตาม ก็ยังคงเป็นการละเมิดเงื่อนไขของคำสั่ง e-Privacy [ 79 ]
การขโมยคุกกี้และการโจรกรรมเซสชัน
เว็บไซต์ส่วนใหญ่ใช้คุกกี้เป็นตัวระบุเซสชันของผู้ใช้เพียงอย่างเดียว เนื่องจากวิธีการอื่นๆ ในการระบุผู้ใช้เว็บมีข้อจำกัดและช่องโหว่ หากเว็บไซต์ใช้คุกกี้เป็นตัวระบุเซสชัน ผู้โจมตีสามารถปลอมตัวเป็นคำขอของผู้ใช้ได้โดยการขโมยชุดคุกกี้ทั้งหมดของเหยื่อ จากมุมมองของเว็บเซิร์ฟเวอร์ คำขอจากผู้โจมตีจะมีสถานะการตรวจสอบสิทธิ์เช่นเดียวกับคำขอของเหยื่อ ดังนั้นคำขอจึงถูกดำเนินการในนามของเซสชันของเหยื่อ
ต่อไปนี้เป็นสถานการณ์ต่างๆ ของการขโมยคุกกี้และการโจรกรรมเซสชันผู้ใช้ (แม้ว่าจะไม่ได้ขโมยคุกกี้ของผู้ใช้ก็ตาม) ที่เกิดขึ้นกับเว็บไซต์ที่ใช้คุกกี้ HTTP เพียงอย่างเดียวในการระบุตัวตนผู้ใช้
การดักฟังเครือข่าย

ข้อมูลบนเครือข่ายสามารถถูกดักฟังและอ่านได้โดยคอมพิวเตอร์เครื่องอื่นบนเครือข่ายนอกเหนือจากผู้ส่งและผู้รับ (โดยเฉพาะอย่างยิ่งผ่านWi-Fiแบบเปิดที่ไม่ได้เข้ารหัส ) ข้อมูลเหล่านี้รวมถึงคุกกี้ที่ส่งผ่านเซสชัน HTTP ที่ไม่ได้เข้ารหัสทั่วไป ดังนั้น ในกรณีที่ข้อมูลบนเครือข่ายไม่ได้เข้ารหัส ผู้โจมตีจึงสามารถอ่านการสื่อสารของผู้ใช้รายอื่นบนเครือข่ายได้ รวมถึงคุกกี้ HTTP ตลอดจนเนื้อหาทั้งหมดของการสนทนา เพื่อวัตถุประสงค์ในการโจมตีแบบคนกลาง (man-in-the-middle attack )
ผู้โจมตีสามารถใช้คุกกี้ที่ถูกดักจับเพื่อปลอมตัวเป็นผู้ใช้และกระทำการที่เป็นอันตราย เช่น โอนเงินออกจากบัญชีธนาคารของเหยื่อ
ปัญหาดังกล่าวสามารถแก้ไขได้โดยการรักษาความปลอดภัยการสื่อสารระหว่างคอมพิวเตอร์ของผู้ใช้และเซิร์ฟเวอร์โดยใช้ โปรโตคอล Transport Layer Security ( HTTPS ) เพื่อเข้ารหัสการเชื่อมต่อ เซิร์ฟเวอร์สามารถระบุSecureแฟล็กขณะตั้งค่าคุกกี้ ซึ่งจะทำให้เบราว์เซอร์ส่งคุกกี้ผ่านช่องทางที่เข้ารหัสเท่านั้น เช่น การเชื่อมต่อ TLS [ 45 ]
การเผยแพร่โดเมนย่อยปลอม: การโจมตีแคช DNS
หากผู้โจมตีสามารถทำให้เซิร์ฟเวอร์ DNSแคชรายการ DNS ปลอม (เรียกว่าการโจมตีแบบ DNS cache poisoning ) ก็อาจทำให้ผู้โจมตีเข้าถึงคุกกี้ของผู้ใช้ได้ ตัวอย่างเช่น ผู้โจมตีอาจใช้การโจมตีแบบ DNS cache poisoning เพื่อสร้างรายการ DNS ปลอมที่ชี้f12345.www.example.comไปยังที่อยู่IPของเซิร์ฟเวอร์ของผู้โจมตี จากนั้นผู้โจมตีสามารถโพสต์ URL รูปภาพจากเซิร์ฟเวอร์ของตนเอง (ตัวอย่างเช่นhttp://f12345.www.example.com/img_4_cookie.jpg) เหยื่อที่อ่านข้อความของผู้โจมตีจะดาวน์โหลดรูปภาพนี้จากf12345.www.example.comเนื่องจากf12345.www.example.comเป็นโดเมนย่อยของwww.example.comเบราว์เซอร์ของเหยื่อจะส่งexample.comคุกกี้ที่เกี่ยวข้องกับ ไปยังเซิร์ฟเวอร์ของผู้โจมตี ทั้งหมด
หากผู้โจมตีสามารถทำเช่นนี้ได้สำเร็จ โดยปกติแล้วจะเป็นความผิดของผู้ให้บริการอินเทอร์เน็ตที่ไม่รักษาความปลอดภัยเซิร์ฟเวอร์ DNS อย่างเหมาะสม อย่างไรก็ตาม ความรุนแรงของการโจมตีนี้อาจลดลงได้หากเว็บไซต์เป้าหมายใช้คุกกี้ที่ปลอดภัย ในกรณีนี้ ผู้โจมตีจะต้องเผชิญกับความท้าทายเพิ่มเติม[ 94 ]ในการขอรับใบรับรอง TLS ของเว็บไซต์เป้าหมายจากหน่วยงานออกใบรับรองเนื่องจากคุกกี้ที่ปลอดภัยสามารถส่งผ่านได้เฉพาะการเชื่อมต่อที่เข้ารหัสเท่านั้น หากไม่มีใบรับรอง TLS ที่ตรงกัน เบราว์เซอร์ของผู้เสียหายจะแสดงข้อความเตือนเกี่ยวกับใบรับรองที่ไม่ถูกต้องของผู้โจมตี ซึ่งจะช่วยยับยั้งผู้ใช้ไม่ให้เข้าชมเว็บไซต์ที่ฉ้อฉลของผู้โจมตีและส่งคุกกี้ให้กับผู้โจมตี
การโจมตีแบบ Cross-site scripting: การขโมยคุกกี้
คุกกี้ยังสามารถถูกขโมยได้โดยใช้เทคนิคที่เรียกว่า Cross-Site Scripting (XSS) เทคนิคนี้เกิดขึ้นเมื่อผู้โจมตีใช้ประโยชน์จากเว็บไซต์ที่อนุญาตให้ผู้ใช้โพสต์ เนื้อหา HTMLและJavaScript ที่ไม่ผ่านการกรอง โดยการโพสต์โค้ด HTML และ JavaScript ที่เป็นอันตราย ผู้โจมตีสามารถทำให้เว็บเบราว์เซอร์ของเหยื่อส่งคุกกี้ของเหยื่อไปยังเว็บไซต์ที่ผู้โจมตีควบคุมได้
ตัวอย่างเช่น ผู้โจมตีอาจโพสต์ข้อความwww.example.comพร้อมลิงก์ต่อไปนี้:
<a href="#" > คลิกที่นี่! < / a >
เมื่อผู้ใช้รายอื่นคลิกที่ลิงก์นี้ เบราว์เซอร์จะเรียกใช้โค้ดภายในแอตทริบิวต์onclickซึ่งจะแทนที่สตริงdocument.cookieด้วยรายการคุกกี้ที่สามารถเข้าถึงได้จากหน้าปัจจุบัน ส่งผลให้รายการคุกกี้เหล่านี้ถูกส่งไปยังattacker.comเซิร์ฟเวอร์ หากการโพสต์ที่เป็นอันตรายของผู้โจมตีอยู่บนเว็บไซต์ HTTPS https://www.example.comคุกกี้ที่ปลอดภัยก็จะถูกส่งไปยัง attacker.com ในรูปแบบข้อความธรรมดาด้วย
เป็นหน้าที่ของผู้พัฒนาเว็บไซต์ที่จะต้องกรองโค้ดที่เป็นอันตรายดังกล่าวออกไป
การโจมตีลักษณะนี้สามารถบรรเทาได้โดยการใช้คุกกี้ HttpOnly คุกกี้เหล่านี้จะไม่สามารถเข้าถึงได้โดยภาษาเขียนโปรแกรมฝั่งไคลเอ็นต์ เช่น JavaScript ดังนั้นผู้โจมตีจะไม่สามารถรวบรวมคุกกี้เหล่านี้ได้
การโจมตีแบบ Cross-site scripting: การร้องขอพร็อกซี
ในเบราว์เซอร์เวอร์ชันเก่าหลายๆ เบราว์เซอร์ มีช่องโหว่ด้านความปลอดภัยในการใช้งาน API XMLHttpRequest API นี้อนุญาตให้หน้าเว็บระบุพร็อกซีเซิร์ฟเวอร์ที่จะรับการตอบกลับ และพร็อกซีเซิร์ฟเวอร์นี้ไม่อยู่ภายใต้นโยบายต้นทางเดียวกัน (same-origin policy ) ตัวอย่างเช่น เหยื่อกำลังอ่านโพสต์ของผู้โจมตีบนwww.example.comและสคริปต์ของผู้โจมตีถูกเรียกใช้ในเบราว์เซอร์ของเหยื่อ สคริปต์จะสร้างคำขอไปยังwww.example.comโดยใช้พร็อกซีเซิร์ฟเวอร์attacker.comเนื่องจากคำขอเป็นคำขอสำหรับ ดังนั้น คุกกี้ www.example.comทั้งหมดexample.comจะถูกส่งไปพร้อมกับคำขอ แต่จะถูกส่งผ่านพร็อกซีเซิร์ฟเวอร์ของผู้โจมตี ด้วยเหตุนี้ ผู้โจมตีจึงสามารถเก็บเกี่ยวคุกกี้ของเหยื่อได้
การโจมตีแบบนี้จะใช้ไม่ได้ผลกับคุกกี้ที่ปลอดภัย เนื่องจากคุกกี้สามารถส่งผ่านได้เฉพาะ การเชื่อมต่อ HTTPS เท่านั้น และโปรโตคอล HTTPS กำหนดให้มีการเข้ารหัสแบบ end-to-end (กล่าวคือ ข้อมูลจะถูกเข้ารหัสในเบราว์เซอร์ของผู้ใช้และถอดรหัสบนเซิร์ฟเวอร์ปลายทาง) ในกรณีนี้ เซิร์ฟเวอร์พร็อกซีจะเห็นเฉพาะไบต์ดิบที่เข้ารหัสแล้วของคำขอ HTTP เท่านั้น
การปลอมแปลงคำขอข้ามเว็บไซต์
ตัวอย่างเช่น บ็อบอาจกำลังดูเว็บบอร์ดสนทนาที่ผู้ใช้รายอื่นชื่อมัลลอรีได้โพสต์ข้อความไว้ สมมติว่ามัลลอรีได้สร้างองค์ประกอบรูปภาพ HTML ที่อ้างอิงถึงการกระทำบนเว็บไซต์ธนาคารของบ็อบ (แทนที่จะเป็นไฟล์รูปภาพ) เช่น
<img src= "http://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory" >หากธนาคารของบ็อบเก็บข้อมูลการยืนยันตัวตนของเขาไว้ในคุกกี้ และหากคุกกี้ยังไม่หมดอายุ การที่เบราว์เซอร์ของบ็อบพยายามโหลดรูปภาพจะส่งแบบฟอร์มถอนเงินพร้อมกับคุกกี้ของเขา ซึ่งจะทำให้การทำธุรกรรมสำเร็จโดยไม่ได้รับความยินยอมจากบ็อบ
การขโมยคุกกี้
Cookiejackingเป็นการโจมตีInternet Explorerซึ่งทำให้ผู้โจมตีสามารถขโมยคุกกี้เซสชันของผู้ใช้ได้โดยการหลอกให้ผู้ใช้ลากวัตถุบนหน้าจอ[ 95 ] Microsoft ถือว่าช่องโหว่นี้มีความเสี่ยงต่ำเนื่องจาก "ระดับของการโต้ตอบของผู้ใช้ที่จำเป็น" [ 95 ]และความจำเป็นที่จะต้องมีผู้ใช้ที่ล็อกอินเข้าสู่เว็บไซต์ที่ถูกขโมยคุกกี้อยู่แล้ว[ 96 ]ถึงกระนั้น นักวิจัยคนหนึ่งได้ลองโจมตีเพื่อนใน Facebook 150 คน และได้รับคุกกี้จาก 80 คนผ่านทางวิศวกรรมสังคม [ 95 ]
ข้อเสียของคุกกี้
นอกจากข้อกังวลเรื่องความเป็นส่วนตัวแล้ว คุกกี้ยังมีข้อเสียทางเทคนิคบางประการอีกด้วย โดยเฉพาะอย่างยิ่ง คุกกี้ไม่สามารถระบุตัวผู้ใช้ได้อย่างแม่นยำเสมอไป คุกกี้สามารถนำไปใช้ในการโจมตีด้านความปลอดภัยได้ และคุกกี้มักขัดแย้งกับรูปแบบสถาปัตยกรรมซอฟต์แวร์ Representational State Transfer ( REST ) [ 97 ] [ 98 ]
การระบุตัวตนที่ไม่ถูกต้อง
หากมีการใช้เบราว์เซอร์มากกว่าหนึ่งตัวบนคอมพิวเตอร์ แต่ละเบราว์เซอร์มักจะมีพื้นที่จัดเก็บคุกกี้แยกต่างหาก ดังนั้น คุกกี้จึงไม่ได้ระบุตัวบุคคล แต่เป็นการรวมกันของบัญชีผู้ใช้ คอมพิวเตอร์ และเบราว์เซอร์เว็บ ดังนั้น ผู้ใดก็ตามที่ใช้หลายบัญชี คอมพิวเตอร์ หรือเบราว์เซอร์ จะมีชุดคุกกี้หลายชุด[ 99 ]
ในทำนองเดียวกัน คุกกี้ไม่สามารถแยกแยะความแตกต่างระหว่างผู้ใช้หลายคนที่ใช้บัญชีผู้ใช้คอมพิวเตอร์ และเบราว์เซอร์ เดียวกันได้
ทางเลือกอื่นนอกเหนือจากคุกกี้
การดำเนินการบางอย่างที่สามารถทำได้โดยใช้คุกกี้ ก็สามารถทำได้โดยใช้กลไกอื่นๆ เช่นกัน
การตรวจสอบสิทธิ์และการจัดการเซสชัน
โทเค็นเว็บ JSON
JSON Web Token (JWT) คือแพ็กเก็ตข้อมูลที่ครบถ้วนในตัวเอง ซึ่งสามารถใช้จัดเก็บข้อมูลระบุตัวตนและความถูกต้องของผู้ใช้ได้ ทำให้สามารถใช้แทนคุกกี้เซสชันได้ ต่างจากคุกกี้ที่เบราว์เซอร์จะแนบไปกับคำขอ HTTP แต่ละครั้งโดยอัตโนมัติ JWT จะต้องถูกแนบไปกับคำขอ HTTP แต่ละครั้งโดยเว็บแอปพลิเคชันอย่างชัดเจน
การตรวจสอบสิทธิ์ HTTP
โปรโตคอล HTTP ประกอบด้วย โปรโตคอล การตรวจสอบสิทธิ์การเข้าถึงขั้นพื้นฐานและ โปรโตคอล การตรวจสอบสิทธิ์การเข้าถึงแบบไดเจสต์ซึ่งอนุญาตให้เข้าถึงหน้าเว็บได้ก็ต่อเมื่อผู้ใช้ป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้องเท่านั้น หากเซิร์ฟเวอร์ต้องการข้อมูลประจำตัวดังกล่าวเพื่ออนุญาตให้เข้าถึงหน้าเว็บ เบราว์เซอร์จะร้องขอข้อมูลเหล่านั้นจากผู้ใช้ และเมื่อได้รับแล้ว เบราว์เซอร์จะจัดเก็บและส่งข้อมูลเหล่านั้นในการร้องขอหน้าเว็บครั้งต่อๆ ไป ข้อมูลนี้สามารถนำมาใช้ติดตามผู้ใช้ได้
URL (สตริงคำค้นหา)
ส่วนที่เป็น สตริงคำค้นหาของURLคือส่วนที่มักใช้เพื่อจุดประสงค์นี้ แต่ส่วนอื่นๆ ก็สามารถใช้ได้เช่นกัน กลไกการจัดการเซสชัน ของ Java ServletและPHPต่างก็ใช้วิธีนี้หากไม่ได้เปิดใช้งานคุกกี้
วิธีการนี้ประกอบด้วยการที่เว็บเซิร์ฟเวอร์เพิ่มสตริงคำค้นหาที่มีตัวระบุเซสชันที่ไม่ซ้ำกันลงในลิงก์ทั้งหมดภายในหน้าเว็บ เมื่อผู้ใช้คลิกลิงก์ เบราว์เซอร์จะส่งสตริงคำค้นหาไปยังเซิร์ฟเวอร์ ทำให้เซิร์ฟเวอร์สามารถระบุตัวผู้ใช้และรักษาสถานะได้
สตริงคำค้นหาประเภทนี้คล้ายกับคุกกี้มากตรงที่ทั้งสองอย่างมีข้อมูลที่ไม่แน่นอนซึ่งเลือกโดยเซิร์ฟเวอร์ และทั้งสองอย่างจะถูกส่งกลับไปยังเซิร์ฟเวอร์ทุกครั้งที่มีการร้องขอ อย่างไรก็ตาม มีความแตกต่างบางประการ เนื่องจากสตริงคำค้นหาเป็นส่วนหนึ่งของ URL หาก URL นั้นถูกนำมาใช้ซ้ำในภายหลัง ข้อมูลที่แนบมาเดียวกันจะถูกส่งไปยังเซิร์ฟเวอร์ ซึ่งอาจทำให้เกิดความสับสนได้ ตัวอย่างเช่น หากการตั้งค่าของผู้ใช้ถูกเข้ารหัสไว้ในสตริงคำค้นหาของ URL และผู้ใช้ส่ง URL นั้นไปยังผู้ใช้อื่นทางอีเมลการตั้งค่าเหล่านั้นก็จะถูกนำไปใช้กับผู้ใช้อื่นนั้นด้วยเช่นกัน
นอกจากนี้ หากผู้ใช้คนเดียวกันเข้าถึงหน้าเว็บเดียวกันหลายครั้งจากแหล่งที่มาต่างกัน ก็ไม่มีการรับประกันว่าสตริงคำค้นหาที่ใช้จะเหมือนกันทุกครั้ง ตัวอย่างเช่น หากผู้ใช้เข้าชมหน้าเว็บจากหน้าภายในเว็บไซต์เป็นครั้งแรก และเข้าชมหน้าเว็บเดียวกันอีกครั้งจากเครื่องมือค้นหาภายนอกสตริงคำค้นหาที่ใช้ก็อาจแตกต่างกัน หากมีการใช้คุกกี้ในสถานการณ์นี้ คุกกี้ที่ใช้ก็จะเหมือนกัน
ข้อเสียอื่นๆ ของสตริงคำค้นหาเกี่ยวข้องกับความปลอดภัย การจัดเก็บข้อมูลที่ระบุเซสชันในสตริงคำค้นหาทำให้เกิด การโจมตี แบบ Session Fixation , Referer Logging และช่องโหว่ด้านความปลอดภัย อื่นๆ การส่งตัวระบุเซสชันในรูปแบบ HTTP Cookie นั้นปลอดภัยกว่า
ช่องกรอกข้อมูลที่ซ่อนอยู่
อีกรูปแบบหนึ่งของการติดตามเซสชันคือการใช้แบบฟอร์มบนเว็บที่มีฟิลด์ซ่อนอยู่ เทคนิคนี้คล้ายกับการใช้สตริงคำค้นหาใน URL เพื่อเก็บข้อมูล และมีข้อดีและข้อเสียหลายอย่างเหมือนกัน ที่จริงแล้ว หากแบบฟอร์มนั้นถูกจัดการด้วย วิธีการ HTTP GET เทคนิคนี้จะคล้ายกับการใช้สตริงคำค้นหาใน URL เนื่องจากวิธีการ GET จะเพิ่มฟิลด์ของแบบฟอร์มลงใน URL ในรูปแบบของสตริงคำค้นหา แต่แบบฟอร์มส่วนใหญ่จะถูกจัดการด้วย HTTP POST ซึ่งทำให้ข้อมูลของแบบฟอร์ม รวมถึงฟิลด์ซ่อนอยู่ ถูกส่งไปในส่วนเนื้อหาของคำขอ HTTP ซึ่งไม่ใช่ส่วนหนึ่งของ URL หรือคุกกี้
วิธีการนี้มีข้อดีสองประการสำหรับตัวติดตาม ประการแรก การที่ข้อมูลการติดตามถูกวางไว้ในส่วนเนื้อหาของคำขอ HTTP แทนที่จะอยู่ใน URL หมายความว่าผู้ใช้ทั่วไปจะไม่สังเกตเห็น ประการที่สอง ข้อมูลเซสชันจะไม่ถูกคัดลอกเมื่อผู้ใช้คัดลอก URL (เช่น เพื่อบุ๊กมาร์กหน้าเว็บหรือส่งทางอีเมล)
คุณสมบัติ DOM ของ window.name
เว็บเบราว์เซอร์ปัจจุบันทั้งหมดสามารถจัดเก็บข้อมูลจำนวนมากพอสมควร (2–32 MB) ผ่าน JavaScript โดยใช้คุณสมบัติDOMwindow.nameได้ ข้อมูลนี้สามารถใช้แทนคุกกี้เซสชันได้ เทคนิคนี้ยังสามารถใช้ร่วมกับ อ็อบเจ็กต์ JSON /JavaScript เพื่อจัดเก็บชุดตัวแปรเซสชันที่ซับซ้อนบนฝั่งไคลเอ็นต์ได้อีกด้วย
ข้อเสียคือ หน้าต่างหรือแท็บ แต่ละอัน จะมีwindow.nameคุณสมบัติว่างเปล่าเมื่อเปิดขึ้นมา ครั้งแรก
ในบางแง่มุม วิธีนี้อาจมีความปลอดภัยมากกว่าคุกกี้ เนื่องจากเนื้อหาของมันไม่ได้ถูกส่งไปยังเซิร์ฟเวอร์โดยอัตโนมัติทุกครั้งที่มีการร้องขอเหมือนกับคุกกี้ ดังนั้นจึงไม่เสี่ยงต่อการโจมตีโดยการดักจับข้อมูลคุกกี้ผ่านเครือข่าย
การติดตาม
ที่อยู่ IP
ผู้ใช้งานบางรายอาจถูกติดตามโดยใช้ที่อยู่ IPของคอมพิวเตอร์ที่ร้องขอหน้าเว็บ เซิร์ฟเวอร์ทราบที่อยู่ IP ของคอมพิวเตอร์ที่ใช้งานเบราว์เซอร์ (หรือพร็อกซีหากมีการใช้งาน) และในทางทฤษฎีแล้วสามารถเชื่อมโยงเซสชันของผู้ใช้งานกับที่อยู่ IP นี้ได้
อย่างไรก็ตาม โดยทั่วไปแล้ว ที่อยู่ IP ไม่ใช่วิธีที่เชื่อถือได้ในการติดตามเซสชันหรือระบุตัวผู้ใช้ คอมพิวเตอร์หลายเครื่องที่ออกแบบมาเพื่อใช้งานโดยผู้ใช้เพียงคนเดียว เช่น คอมพิวเตอร์สำนักงานหรือคอมพิวเตอร์ที่บ้าน มักใช้ตัวแปลงที่อยู่เครือข่าย (NAT) ซึ่งหมายความว่าคอมพิวเตอร์หลายเครื่องจะใช้ที่อยู่ IP สาธารณะร่วมกัน นอกจากนี้ ระบบบางระบบ เช่นTorถูกออกแบบมาเพื่อรักษาความเป็นส่วนตัวบนอินเทอร์เน็ตทำให้การติดตามด้วยที่อยู่ IP เป็นไปไม่ได้ ทำได้จริง หรือเป็นความเสี่ยงด้านความปลอดภัย
อีแท็ก
เนื่องจาก ETag จะถูกแคชโดยเบราว์เซอร์ และถูกส่งกลับมาพร้อมกับการร้องขอทรัพยากรเดียวกันในครั้งต่อๆ ไป เซิร์ฟเวอร์ติดตามจึงสามารถทำซ้ำ ETag ที่ได้รับจากเบราว์เซอร์เพื่อให้แน่ใจว่า ETag ที่กำหนดไว้จะคงอยู่ตลอดไป (ในลักษณะเดียวกับคุกกี้แบบถาวร) นอกจากนี้ ฟิลด์ส่วนหัวการแคชเพิ่มเติมยังสามารถเพิ่มประสิทธิภาพในการเก็บรักษาข้อมูล ETag ได้อีกด้วย
ในบางเบรา ว์ เซอร์ สามารถล้าง ETags ได้โดยการล้างแคชของเบราว์เซอร์
แคชของเบราว์เซอร์
แคชของเบราว์เซอร์ยังสามารถใช้เก็บข้อมูลที่ใช้ติดตามผู้ใช้แต่ละรายได้ เทคนิคนี้ใช้ประโยชน์จากข้อเท็จจริงที่ว่าเบราว์เซอร์จะใช้ทรัพยากรที่จัดเก็บไว้ในแคชแทนการดาวน์โหลดจากเว็บไซต์ เมื่อเบราว์เซอร์ตรวจสอบแล้วพบว่าแคชมีเวอร์ชันล่าสุดของทรัพยากรนั้นอยู่แล้ว
ตัวอย่างเช่น เว็บไซต์อาจให้บริการไฟล์ JavaScript ที่มีโค้ดสำหรับกำหนดตัวระบุเฉพาะสำหรับผู้ใช้ (เช่นvar userId = 3243242;) หลังจากที่ผู้ใช้เข้าชมเว็บไซต์ครั้งแรก ทุกครั้งที่ผู้ใช้เข้าถึงหน้าเว็บ ไฟล์นี้จะถูกโหลดจากแคชแทนที่จะดาวน์โหลดจากเซิร์ฟเวอร์ ดังนั้นเนื้อหาของไฟล์จึงจะไม่เปลี่ยนแปลง
ลายนิ้วมือของเบราว์เซอร์
ลายนิ้วมือของเบราว์เซอร์คือข้อมูลที่รวบรวมเกี่ยวกับการตั้งค่าของเบราว์เซอร์ เช่น หมายเลขเวอร์ชัน ความละเอียดหน้าจอ และระบบปฏิบัติการ เพื่อวัตถุประสงค์ในการระบุตัวตน ลายนิ้วมือเหล่านี้สามารถใช้เพื่อระบุตัวตนผู้ใช้หรืออุปกรณ์แต่ละรายได้อย่างสมบูรณ์หรือบางส่วน แม้ว่าจะปิดใช้งานคุกกี้แล้วก็ตาม
ข้อมูลการกำหนดค่า เว็บเบราว์เซอร์พื้นฐานได้รับการรวบรวมโดย บริการ วิเคราะห์เว็บ มานานแล้ว เพื่อวัดปริมาณการเข้าชมเว็บ ของมนุษย์จริงอย่างแม่นยำ และลดรูปแบบต่างๆ ของการฉ้อโกงการคลิกด้วยความช่วยเหลือของ ภาษา สคริปต์ฝั่งไคลเอ็นต์การรวบรวมพารามิเตอร์ที่ซับซ้อนมากขึ้นจึงเป็นไปได้[ 100 ] [ 101 ]การรวมข้อมูลดังกล่าวเข้าเป็นสตริงเดียวก่อให้เกิดลายนิ้วมือของอุปกรณ์ ในปี 2010 EFF ได้วัด เอนโทรปีอย่างน้อย 18.1 บิตที่เป็นไปได้จากการสร้างลายนิ้วมือของเบราว์เซอร์[ 102 ]การสร้างลายนิ้วมือของ Canvasซึ่งเป็นเทคนิคที่ใหม่กว่า อ้างว่าเพิ่มอีก 5.7 บิต
พื้นที่จัดเก็บข้อมูลบนเว็บ
เว็บเบราว์เซอร์บางตัวรองรับกลไกการจัดเก็บข้อมูลถาวร ซึ่งช่วยให้หน้าเว็บสามารถจัดเก็บข้อมูลไว้ในเครื่องเพื่อใช้งานในภายหลังได้
มาตรฐานHTML5 (ซึ่งเว็บเบราว์เซอร์สมัยใหม่ส่วนใหญ่รองรับในระดับหนึ่ง) ประกอบด้วย API JavaScript ที่เรียกว่าWeb storageซึ่งอนุญาตให้จัดเก็บข้อมูลได้สองประเภท ได้แก่ local storage และ session storage local storage ทำงานคล้ายกับpersistent cookiesในขณะที่ session storage ทำงานคล้ายกับsession cookiesยกเว้นว่า session storage จะผูกกับอายุการใช้งานของแท็บ/หน้าต่างแต่ละแท็บ/หน้าต่าง (หรือที่เรียกว่าเซสชันของหน้าเว็บ) ไม่ใช่เซสชันของเบราว์เซอร์ทั้งหมดเหมือนกับ session cookies [ 103 ]
Internet Explorer รองรับข้อมูลถาวร[ 104 ]ในประวัติของเบราว์เซอร์ ในรายการโปรดของเบราว์เซอร์ ในที่เก็บ XML ("ข้อมูลผู้ใช้") หรือโดยตรงภายในหน้าเว็บที่บันทึกไว้ในดิสก์
ปลั๊กอินของเว็บเบราว์เซอร์บางตัวมีกลไกการคงอยู่ด้วยเช่นกัน ตัวอย่างเช่นAdobe FlashมีLocal shared objectและMicrosoft Silverlightมี Isolated storage [ 105 ]
ดูเพิ่มเติม
- HTTP Strict Transport Security § ประเด็นด้านความเป็นส่วนตัว
- คุกกี้ที่ปลอดภัย – คุกกี้ประเภท HTTP
- หัวข้อ (วิทยาการคอมพิวเตอร์) – บริบทชั่วคราวสำหรับการแลกเปลี่ยนข้อมูลแบบโต้ตอบ
ลิงก์ภายนอก
- RFC 6265คือข้อกำหนดอย่างเป็นทางการในปัจจุบันสำหรับคุกกี้ HTTP
- คุกกี้ HTTP , เครือข่ายนักพัฒนา Mozilla
- การใช้งานคุกกี้ผ่าน ECMAScript โดย Mozilla Developer Network
- วิธีการทำงานของคุกกี้บนอินเทอร์เน็ตที่HowStuffWorks
- คุกกี้ที่ศูนย์ข้อมูลความเป็นส่วนตัวทางอิเล็กทรอนิกส์ (EPIC)
- ฐานข้อมูลความรู้ของ Mozilla: คุกกี้
- โดเมนคุกกี้ อธิบายโดยละเอียดว่าเบราว์เซอร์หลักๆ ในปัจจุบันจัดการโดเมนคุกกี้อย่างไร
- การขโมยคุกกี้ - ไมเคิล พาวนด์
- ตรวจสอบคุกกี้เพื่อให้เป็นไปตามข้อกำหนดของสหภาพยุโรปเกี่ยวกับคุกกี้