realfp.com

ภาษาของเบราว์เซอร์คืออะไร?

ในยุคดิจิทัล การปกป้องความเป็นส่วนตัวได้กลายเป็นประเด็นที่ผู้คนให้ความสนใจมากขึ้นเรื่อย ๆ เมื่อเราพูดถึงลายนิ้วมือเบราว์เซอร์ มักจะนึกถึงเทคนิคต่าง ๆ เช่น Canvas fingerprint, WebGL fingerprint หรือ audio fingerprint อย่างไรก็ตาม ยังมีมิติของข้อมูลอย่างหนึ่งที่ดูเหมือนไม่เป็นอันตราย แต่ก็อาจถูกใช้เพื่อระบุอุปกรณ์ได้เช่นกัน——นั่นก็คือการตั้งค่าภาษาของคุณ



ภาษาที่ต้องการ: ค่ากำหนดภาษาในเบราว์เซอร์

การตั้งค่าภาษาในเบราว์เซอร์ไม่ได้เป็นเพียงตัวเลือกสำหรับการแสดงผลเท่านั้น เมื่อคุณเปิดการตั้งค่าค่ากำหนดภาษาของเบราว์เซอร์ โดยทั่วไปคุณจะเห็นรายการภาษาที่เรียงตามลำดับความสำคัญ ตัวอย่างเช่น คุณอาจตั้งค่าภาษาอังกฤษ (สหรัฐอเมริกา) เป็นภาษาที่ต้องการเป็นอันดับแรก ตามด้วยภาษาอังกฤษ ภาษาฝรั่งเศส ภาษาโปรตุเกส เป็นต้น



รายการภาษานี้ไม่ได้ใช้เพียงเพื่อกำหนดภาษาที่จะแสดงในอินเทอร์เฟซของเบราว์เซอร์เท่านั้น เมื่อคุณเข้าชมเว็บไซต์ ข้อมูลค่ากำหนดภาษาเหล่านี้จะถูกรวมอยู่ในคำขอ HTTP และส่งไปยังเซิร์ฟเวอร์ด้วย เว็บไซต์สามารถใช้สคริปต์ JavaScript ง่าย ๆ เพื่อดึงรายการภาษาที่ผู้ใช้ต้องการในเบราว์เซอร์ได้ ซึ่งหมายความว่า ทุกครั้งที่คุณเข้าชมหน้าเว็บ ค่ากำหนดภาษาของคุณกำลัง “บอก” ข้อมูลบางอย่างเกี่ยวกับคุณให้เว็บไซต์ทราบ



ภาษาของส่วนหัวคำขอ: Accept-Language ในคำขอ HTTP

ในส่วนหัวของคำขอ HTTP มีฟิลด์หนึ่งชื่อว่า Accept-Language ซึ่งบรรจุรายละเอียดเกี่ยวกับภาษาที่ผู้ใช้ต้องการในเบราว์เซอร์ รูปแบบของฟิลด์นี้โดยทั่วไปจะคล้ายกับตัวอย่างด้านล่าง:



Accept-Language: en-US, en;q=0.9, fr-FR;q=0.8, fr;q=0.7



มาทำความเข้าใจความหมายของโค้ดส่วนนี้กัน:



en-US:หมายถึงภาษาที่ต้องการเป็นอันดับแรกคือภาษาอังกฤษแบบอเมริกัน มีค่าน้ำหนักสูงสุด



en;q=0.9:หากภาษาอังกฤษแบบอเมริกันไม่พร้อมใช้งาน สามารถยอมรับภาษาอังกฤษ (ทั่วไป) ได้ แต่มีลำดับความสำคัญต่ำกว่าเล็กน้อย โดยมีค่าน้ำหนัก 0.9



fr-FR;q=0.8:สามารถยอมรับภาษาฝรั่งเศสแบบฝรั่งเศสได้ โดยมีค่าน้ำหนัก 0.8



fr;q=0.7:สามารถยอมรับภาษาฝรั่งเศสใด ๆ ก็ได้ โดยมีค่าน้ำหนักต่ำสุด คือ 0.7



ช่วงค่าน้ำหนักอยู่ระหว่าง 0 ถึง 1 ยิ่งค่าตัวเลขสูง ก็ยิ่งแสดงว่าผู้ใช้มีความต้องการภาษานั้นมากขึ้น ด้วยการวิเคราะห์ฟิลด์นี้ เว็บไซต์สามารถเข้าใจค่ากำหนดด้านสภาพแวดล้อมภาษาของผู้ใช้ และนำเสนอเนื้อหาหน้าเว็บในภาษาที่เหมาะสมได้อย่างตรงจุด ทำให้ผู้ใช้สามารถเรียกดูและทำความเข้าใจเว็บไซต์ได้ง่ายขึ้น



เปรียบเทียบง่าย ๆ: Accept-Language ก็เหมือนเมนูที่คุณยื่นให้พนักงานเสิร์ฟตอนสั่งอาหารในร้านอาหาร——มันบอกอีกฝ่ายอย่างชัดเจนว่าคุณต้องการอะไร และลำดับความสำคัญเป็นอย่างไร ส่วนเซิร์ฟเวอร์ก็เหมือนเชฟ ที่เตรียม “อาหาร” (นั่นคือเนื้อหาที่ปรับให้เข้ากับท้องถิ่น) ที่เหมาะสมที่สุดให้คุณตาม “เมนู” ของคุณ



Internationalization API: การสนับสนุนการแปลเป็นภาษาท้องถิ่นที่ละเอียดมากขึ้น

นอกจากฟิลด์ภาษาในส่วนหัวคำขอ HTTP แล้ว เบราว์เซอร์ยังมีอินเทอร์เฟซ JavaScript ชุดหนึ่งที่เรียกว่า Internationalization API (API สำหรับการทำให้เป็นสากล) เป้าหมายของ API ชุดนี้คือช่วยให้นักพัฒนาทำให้เว็บไซต์รองรับความเป็นสากลได้ กล่าวคือ แสดงวันที่ เวลา ตัวเลขในรูปแบบที่เหมาะสมตามการตั้งค่าภาษาและภูมิภาคของผู้ใช้ รวมถึงให้บริการแปลสตริงแบบท้องถิ่น เป็นต้น



เมื่อผู้ใช้เปิดเว็บไซต์ เว็บไซต์สามารถใช้ Internationalization API เพื่อรับค่ากำหนดภาษาที่ผู้ใช้ตั้งไว้ในเบราว์เซอร์ ตัวอย่างเช่น หากภาษาของเบราว์เซอร์ผู้ใช้ตั้งเป็นภาษาอังกฤษ สตริงที่ API ส่งกลับมาอาจเป็น "en" หรือ "en-US"



ตัวอย่างการใช้งานที่พบได้ทั่วไปคือแพลตฟอร์มโซเชียลมีเดีย เมื่อผู้ใช้จากทั่วโลกเข้าชมเว็บไซต์โซเชียลเดียวกัน เว็บไซต์จะใช้ Internationalization API เพื่อตรวจจับค่ากำหนดภาษาของผู้ใช้ และแสดงอินเทอร์เฟซภาษาที่ผู้ใช้คุ้นเคยโดยอัตโนมัติ แทนที่จะเป็นภาษาที่ผู้ใช้ไม่คุ้นเคย ประสบการณ์การใช้งานแบบท้องถิ่นเช่นนี้ช่วยเพิ่มความสามารถในการใช้งานของผลิตภัณฑ์และความพึงพอใจของผู้ใช้อย่างมาก



ข้อมูลภาษามีส่วนร่วมในการระบุลายนิ้วมืออย่างไร?

เมื่อพิจารณาแยกเดี่ยว ๆ ข้อมูลภาษาอาจดูเหมือนไม่มีความสามารถในการระบุตัวตนที่แข็งแกร่งนัก——ท้ายที่สุดแล้ว ผู้ใช้หลายล้านคนทั่วโลกตั้งค่าภาษาอังกฤษเป็นภาษาที่ต้องการ อย่างไรก็ตาม เมื่อข้อมูลภาษาถูกนำมาใช้ร่วมกับข้อมูลลายนิ้วมืออื่น ๆ (เช่น Canvas fingerprint, WebGL fingerprint, audio fingerprint, ความละเอียดหน้าจอ เขตเวลา เป็นต้น) สถานการณ์ก็จะแตกต่างไปอย่างสิ้นเชิง



รูปแบบการผสมผสานของค่ากำหนดภาษามีความหลากหลายอย่างยิ่ง: ไม่เพียงรวมถึงประเภทของภาษาที่ต้องการเป็นอันดับแรกเท่านั้น แต่ยังรวมถึงลำดับของภาษาสำรอง ค่าน้ำหนักของแต่ละภาษา และการตั้งค่าภูมิภาคแบบละเอียดที่ได้รับผ่าน Internationalization API พารามิเตอร์เหล่านี้รวมกันก่อให้เกิด “ลายนิ้วมือภาษา” ที่ค่อนข้างเฉพาะตัว



ที่สำคัญกว่านั้น การตั้งค่าภาษามักมีความเสถียรค่อนข้างสูง——ผู้ใช้ทั่วไปแทบจะไม่เปลี่ยนค่ากำหนดภาษาของเบราว์เซอร์บ่อย ๆ ซึ่งหมายความว่า เมื่อเว็บไซต์บันทึกชุดลายนิ้วมือภาษาของคุณไว้แล้ว เว็บไซต์ก็สามารถใช้ข้อมูลนี้ช่วยระบุอุปกรณ์ของคุณในการเข้าชมครั้งต่อ ๆ ไปได้ แม้ว่าผู้ใช้จะล้าง Cookie หรือเปลี่ยนที่อยู่ IP แล้วก็ตาม



จะปกป้องลายนิ้วมือภาษาของคุณได้อย่างไร?

หากคุณต้องการลดความเสี่ยงที่ข้อมูลภาษาจะถูกใช้ในการติดตามด้วยลายนิ้วมือ สามารถพิจารณาวิธีต่อไปนี้:



1. ใช้เบราว์เซอร์ที่เน้นการปกป้องความเป็นส่วนตัว:เบราว์เซอร์ที่ให้ความสำคัญกับความเป็นส่วนตัว เช่น Tor Browser จะทำให้ส่วนหัวคำขอที่เกี่ยวข้องกับภาษาเป็นมาตรฐานหรือสุ่มค่า เพื่อลดความแตกต่างระหว่างอุปกรณ์



2. ใช้ส่วนขยายเบราว์เซอร์:ส่วนขยายด้านความเป็นส่วนตัวบางตัว (เช่น Privacy Badger, uBlock Origin เป็นต้น) สามารถแก้ไขหรือจำกัดข้อมูลภาษาในส่วนหัวคำขอ HTTP ได้



3. ใช้เบราว์เซอร์ลายนิ้วมือ:เบราว์เซอร์ป้องกันการตรวจจับแบบมืออาชีพอนุญาตให้ผู้ใช้ปรับแต่งและปลอมแปลงพารามิเตอร์ที่เกี่ยวข้องกับภาษาได้ โดยใช้วิธี “แทนที่” แทนการ “ปิดใช้งาน” ทำให้เว็บไซต์มองว่าคุณเป็นผู้ใช้ทั่วไปที่มีค่ากำหนดภาษาต่างออกไป



สรุป

ข้อมูลภาษา——ไม่ว่าจะเป็นฟิลด์ Accept-Language ในส่วนหัวคำขอ HTTP หรือค่ากำหนดภาษาที่ Internationalization API ให้มา——ไม่ได้ถูกออกแบบมาเพื่อใช้ติดตามผู้ใช้โดยตัวมันเอง จุดประสงค์เริ่มแรกที่เว็บไซต์นำเทคโนโลยีเหล่านี้มาใช้ คือเพื่อมอบประสบการณ์ผู้ใช้ที่ดียิ่งขึ้น และตอบสนองความต้องการของผู้ใช้จากภูมิภาคต่าง ๆ ทั่วโลก



อย่างไรก็ตาม ภายใต้กรอบใหญ่ของการระบุลายนิ้วมือเบราว์เซอร์ ข้อมูลค่ากำหนดภาษาที่ดูเหมือนไม่เป็นอันตรายเหล่านี้ก็สามารถถูกเก็บรวบรวมและนำไปใช้ได้เช่นกัน เมื่อนำมาผสานกับเทคนิคการทำลายนิ้วมืออื่น ๆ ก็จะช่วยสร้างตัวระบุผู้ใช้ที่แม่นยำยิ่งขึ้น การทำความเข้าใจกลไกนี้คือก้าวแรกของการปกป้องความเป็นส่วนตัวส่วนบุคคล