คุณเคยสงสัยไหม: เว็บไซต์รู้ได้ยังไงว่าคุณเปิดด้วยคอมพิวเตอร์ Windows หรือ iPhone? ทำไมบางเว็บบนมือถือปรับเลย์เอาต์อัตโนมัติ แต่บนคอมพิวเตอร์แสดงเวอร์ชันเต็ม?
คำตอบซ่อนอยู่ในโค้ดหนึ่งบรรทัดที่เบราว์เซอร์ส่งอัตโนมัติทุกครั้งที่คุณเปิดหน้าเว็บ — มันคือ User-Agent หรือเรียกสั้น ๆ ว่า UA
สำหรับผู้ใช้ทั่วไป UA ก็แค่ข้อมูลที่ผ่านไปตอนหน้าโหลด; แต่สำหรับคนทำหลายบัญชี โค้ดบรรทัดนี้คือ "เบาะแสแรก" ที่แพลตฟอร์มใช้ระบุอุปกรณ์ของคุณ บทความนี้จะแยกให้เห็นชัด: UA เขียนอะไรไว้บ้าง แพลตฟอร์มเอาไปทำอะไร และกับดักที่เจอมากสุดตอนแก้ UA
พูดสั้น ๆ: UA คือ "คำแนะนำตัว" ที่เบราว์เซอร์แนบไปกับทุกคำขอหน้าเว็บอัตโนมัติ — หลายส่วนคั่นด้วยเครื่องหมายอัฒภาค บอกเบราว์เซอร์ ระบบ เคอร์เนล เวอร์ชัน
ลองเปิด UA จริง ๆ มาดู:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.54 Safari/537.36
แยกดู แต่ละส่วนมีความหมาย:
เห็นไหม? UA เปิดเผยระบบปฏิบัติการ เบราว์เซอร์ เคอร์เนล เวอร์ชันทีเดียวครบ — และมันเป็นแบบพาสซีฟล้วน ๆ: คุณไม่ได้ทำอะไรเลย มันส่งออกไปเอง

ต้องโทษ "ประวัติศาสตร์การปลอมตัว" ในวงการเบราว์เซอร์ — ทุกวันนี้เบราว์เซอร์ทุกตัวแขวนชื่อคนอื่นไว้ใน UA ทั้งหมด เพื่อความเข้ากันได้กับเว็บไซต์ที่เคยตัดสินผิดในอดีต
เรื่องเริ่มจากปี 1996: ตอนนั้น UA ของเบราว์เซอร์ Netscape ขึ้นต้นด้วย "Mozilla" เว็บหลายแห่งรู้จักแต่ตัวระบุนี่ ตัวอื่นโดนมองว่าเป็น "ของแปลกไม่รองรับ" IE เพื่อไม่ถูกปิดประตู ก็เติมคำว่า "Mozilla/เข้ากันได้" ลงใน UA ต่อมา Firefox, Chrome, Safari ก็ทำตามกันทีละตัว สุดท้ายทุกคนก็แขวนชื่อของกันและกัน เกิดเป็นภาพ "ใคร ๆ ก็ Mozilla ใคร ๆ ก็ Safari" อย่างทุกวันนี้
UA ของ Chrome แขวน Safari ไม่ใช่เพราะมันเกี่ยวข้องกัน แต่เพราะสมัยก่อนบางเว็บให้ฟีเจอร์เต็มเฉพาะ Safari ประวัติศาสตร์นี้ทำให้ฟิลด์ UA บิดเบี้ยวหนักมาก — ทั้งไม่น่าเชื่อถือเต็มร้อย ทั้งดูคล้ายกันทุกคน
แพลตฟอร์มอ่าน UA เพื่อสามอย่างหลัก:
จุดสำคัญอยู่ตรงนี้: UA คือ "ค่าที่ประกาศ" แก้ได้ตามใจ; ส่วน Canvas, WebGL คือ "ค่าที่วัดได้" อ่านจากฮาร์ดแวร์จริง (หลักการอยู่ในบทความลายนิ้วมือ WebGL นี้) แพลตฟอร์มไม่เคยเชื่อ UA เพียงอย่างเดียว — มันเชื่อ "UA ตรงกับพารามิเตอร์อื่นไหม" ประกาศกับวัดตรงกัน คุณคือผู้ใช้ปกติ; ประกาศกับวัดขัดกัน คุณคือเป้าหมายเฝ้าระวัง
ตัวอย่างความขัดแย้งที่พบบ่อยสุด: UA เขียนว่า iPhone แต่ความละเอียดหน้าจอเป็น 1920×1080 ของคอมพิวเตอร์ — รอยรั่วแบบนี้ระบบความเสี่ยงจับได้ง่ายกว่าตัว "การเปิดเผย UA" เสียอีก
ปฏิกิริยาแรกของหลายคนคือลงปลั๊กอินแก้ UA แต่ปลั๊กอินแก้ได้แค่ชั้น "ประกาศ" อยากแก้ให้ "เนียนกริบ" ต้องแก้พารามิเตอร์ที่มากับ UA ไปพร้อมกัน — และนี่คือสิ่งที่เบราว์เซอร์ลายนิ้วมือถนัด ยกตัวอย่างMasBrowser ตอนสร้างสภาพแวดล้อม ในการตั้งค่าลายนิ้วมือคุณตั้งค่า UA และระบบปฏิบัติการแยกกันได้; เลือกระบบเป็น Windows UA จะจับคู่ชุดเวอร์ชัน Windows ให้อัตโนมัติ ภาษา เขตเวลา ความละเอียดหน้าจอซิงก์กันหมด ไม่เกิดกรณี "ประกาศกับวัดขัดกัน" ดูการตั้งค่าสภาพแวดล้อมอิสระและการแยกลายนิ้วมือแบบครบถ้วนได้ที่หน้าเว็บจัดการความปลอดภัยหลายบัญชี MasBrowser

จะตรวจยังไงว่าแก้ถูก? ในสภาพแวดล้อม เปิดเว็บตรวจลายนิ้วมือเว็บไหนก็ได้ (Browserscan ฯลฯ) ดูคอลัมน์ UA กับระบบ ภาษา เขตเวลาสอดคล้องกันไหม

ต่อให้มีเบราว์เซอร์ลายนิ้วมือ ตั้งค่า UA ก็ยังมีคนพลาด:
จำหลักการหนึ่งไว้: ตัว UA ไม่ใช่ประเด็น "UA สอดคล้องกับพารามิเตอร์อื่นไหม" ต่างหากที่เป็นประเด็น UA ที่สอดคล้องคือ UA ที่ไม่สะดุดตา
กันไม่ได้ด้วยตัวคนเดียว UA เป็นแค่ "ค่าที่ประกาศ" แพลตฟอร์มเอาไปตรวจไขว้กับ "ค่าที่วัดได้" อย่าง Canvas, WebGL, ฟอนต์ แก้แค่ UA โดยไม่แก้พารามิเตอร์คู่กัน กลับยิ่งเผย "ความขัดแย้งระหว่างประกาศกับวัด" ง่ายขึ้น
ไม่เปลี่ยน โหมดไม่ระบุตัวตนแค่ไม่บันทึกประวัติและคุกกี้ UA ยังส่งตามข้อมูลจริงของเบราว์เซอร์ — เป็นตรรกะเดียวกับลายนิ้วมือเบราว์เซอร์ เปลี่ยนตัว UA เองไม่ได้
ขึ้นอยู่กับตลาดเป้าหมายและแพลตฟอร์ม จุดสำคัญคือ "สอดคล้อง": เลือก UA มือถือ ความละเอียด ความสามารถทัช ภาษาเขตเวลาต้องเหมือนมือถือ; เลือก UA คอมพิวเตอร์ ก็ตั้งทั้งชุดแบบคอมพิวเตอร์ การผสมกันต่างหากคือรอยรั่วใหญ่สุด
แพลตฟอร์มไม่เห็น "ร่องรอยการแก้" แต่เห็น "ความไม่สอดคล้อง" ตัว UA แก้ได้; ปัญหาคือแก้แล้วอย่าทิ้งความขัดแย้งไว้ — นี่คือเหตุผลที่เบราว์เซอร์ลายนิ้วมือตั้งค่า UA ระบบ ภาษา เขตเวลาแบบซิงก์กัน
UA คือ "นามบัตรตัวตน" ที่เบราว์เซอร์ส่งออกไปทุกครั้งที่เข้าเว็บ เต็มไปด้วยข้อมูลระบบ เบราว์เซอร์ และเวอร์ชันของคุณ เพราะเหตุผลทางประวัติศาสตร์ มันดูเหมือนกันทุกคนแต่ก็ต่างกันทุกคน — เป็น "เบาะแสแรก" ที่แพลตฟอร์มใช้ระบุอุปกรณ์ แต่ไม่เคยเป็นหลักฐานเดียว: แพลตฟอร์มดูจริง ๆ ว่า UA สอดคล้องกับพารามิเตอร์ลายนิ้วมืออื่นหรือไม่
ดังนั้นคนทำหลายบัญชีไม่ต้อง "ซ่อน UA" แต่ต้อง "ทำให้ UA สอดคล้องกับทั้งสภาพแวดล้อม" เวอร์ชันฟรีมีโควตาสภาพแวดล้อม 2 ตัวดาวน์โหลด MasBrowser สร้างสภาพแวดล้อมแล้วดูว่า UA ระบบ ภาษาถูกตั้งค่าแบบซิงก์กันยังไง — ขั้นตอนนี้จะทำให้ทุกบัญชีของคุณ "ดูเหมือนผู้ใช้ปกติ"