ข้ามไปยังเนื้อหาหลัก
อภิธานศัพท์

การปลอมแปลง user-agent

Toshendra Sharma

โดย Toshendra Sharmaผู้ก่อตั้งและ CEO, AgentCredia · Updated November 13, 2026

การส่ง header User-Agent ที่บิดเบือนตัวตนของ client เช่น สคริปต์ที่อ้างว่าเป็น browser หรือ scraper ที่อ้างว่าเป็น crawler ที่รู้จัก

user-agent spoofing คืออะไร

HTTP client ทุกตัวสามารถส่ง User-Agent header เพื่ออธิบายตัวเองได้ เช่น ชื่อและเวอร์ชันของ browser, ชื่อของ crawler, ตัวระบุของ library ข้อมูลใน header นี้เป็นการระบุด้วยตนเอง ไม่มีอะไรใน HTTP ที่ตรวจได้ว่าจริงหรือไม่ ดังนั้น client ใดก็ส่งค่าใดก็ได้ user-agent spoofing คือการส่งค่าที่บิดเบือนตัวตนของ client เช่น:

  • สคริปต์อัตโนมัติที่แสดงตัวว่าเป็น desktop browser รุ่นปัจจุบัน,
  • scraper ที่อ้างว่าเป็น search crawler ที่มีชื่อเสียงเพื่อให้ได้รับการปฏิบัติที่ดีกว่า,
  • AI agent ที่ใช้ user-agent แบบทั่วไปเพื่อให้ถูกมองว่าเป็นคนหนึ่ง

ทำไมจึงสำคัญ

หลายระบบยังคงตัดสินใจจาก user-agent string เช่น การอนุญาตเฉพาะ crawler ที่รู้จัก การแสดงเนื้อหาต่างกันให้ bot หรือการตัด automation ออกจาก analytics การตัดสินใจเหล่านี้ทั้งหมดสืบทอดจุดอ่อนของ header นี้ ถ้านโยบายระบุว่า "อนุญาตทุกอย่างที่อ้างว่าเป็น crawler X" ก็เท่ากับอนุญาตทุกคนที่คัดลอก string ของ crawler X

สำหรับ application ที่รับทราฟฟิกจาก AI agent เรื่องนี้สำคัญมากขึ้นตามเวลา Agent จำนวนมากขึ้นเรื่อยๆ ทำงานอยู่ใน browser จริงหรือใน browser framework แบบ headless ดังนั้น user-agent string ของพวกมันจึงดูเหมือน browser ของคนจริงอย่างแทบจะแยกไม่ออก บางตัวระบุตัวตนอย่างตรงไปตรงมา header เพียงอย่างเดียวบอกไม่ได้ว่าใครเป็นใคร บทความของเราเรื่อง วิธีดูว่าทราฟฟิกของเว็บไซต์มาจาก AI agent หรือไม่ อธิบายสัญญาณที่ใช้ได้ดีกว่า

หลักฐานที่ดีกว่า header

  • ลายเซ็นทางคริปโตกราฟี ด้วย HTTP Message Signatures และงาน Web Bot Auth client พิสูจน์ได้ว่ามี key ที่ operator ที่ถูกกล่าวอ้างเป็นผู้เผยแพร่ไว้ user-agent string ที่ถูกคัดลอกไม่สามารถสร้างลายเซ็นขึ้นมาใหม่ได้
  • การยืนยันจาก operator ที่เผยแพร่ไว้ ผู้ดูแล crawler บางรายเผยแพร่ช่วง IP หรือรองรับการตรวจ reverse DNS ซึ่งทำให้การปลอมตัวทำได้ยากกว่าใช้ header เพียงอย่างเดียว Google มีเอกสารเกี่ยวกับการ ตรวจ reverse DNS และช่วง IP สำหรับ crawler ของตน Microsoft มีเครื่องมือ Verify Bingbot และ OpenAI เผยแพร่ไฟล์ IP address สำหรับบอตแต่ละตัวของตน Anthropic มี แนวทางสำหรับ hosted browser agent ที่ระบุชัดว่าใครก็ส่ง User-Agent header เดิมได้ และแนะนำให้ตรวจสอบ IP address ที่เผยแพร่ไว้
  • การตรวจสอบความสอดคล้อง การเปรียบเทียบ client ที่อ้างว่ามากับรายละเอียดของ protocol และสัญญาณจากการโต้ตอบสามารถชี้ได้ว่าคำอ้างไม่สอดคล้องกัน แม้ว่าสิ่งนี้จะให้ข้อสรุปเชิงอนุมาน ไม่ใช่การพิสูจน์
  • Credentials สำหรับ API, API key หรือ token บอกได้ว่าเป็น account ใดที่เรียกใช้งาน ไม่ว่าหัวข้อ header จะระบุว่าอย่างไร

ความเข้าใจผิดที่พบบ่อย

  • "browser user-agent แปลว่าคนจริง" browser แบบ headless และ agent framework ส่ง string ของ browser เป็นเรื่องปกติ
  • "crawler user-agent แปลว่า crawler นั้นจริงๆ" หากไม่มีลายเซ็นหรือการตรวจยืนยันจาก operator ก็เป็นเพียงคำกล่าวอ้างเท่านั้น
  • "การปลอมแปลงมักมีเจตนาร้ายเสมอ" เครื่องมือที่ถูกต้องตามกฎหมายบางชนิดส่ง string ทั่วไปเพื่อหลีกเลี่ยงการถูกเสิร์ฟหน้าเว็บที่ใช้งานไม่ได้ การปลอมแปลงเป็นเหตุผลให้ลดน้ำหนักของ header ไม่ใช่หลักฐานของเจตนาร้าย

Proof of Actor จัดการ user-agent string อย่างไร

Proof of Actor บันทึกการอ้าง user-agent เป็นหลักฐานแบบ declared: สิ่งที่ client ระบุว่าเป็นตนเอง ซึ่งอาจจริงหรือไม่จริงก็ได้ ระบบจะไม่ยกระดับ declaration ให้เป็น verified ด้วยตัวเอง คำขอที่มีหลักฐานระบุตัวตนเพียงอย่างเดียวเป็น user-agent string ของ crawler จะถูกติดป้ายตามนั้น และเมื่อหลักฐานไม่เพียงพอ ผลลัพธ์จะเป็น Unknown แทนการเดาแบบมั่นใจ จากนั้นนโยบายของคุณใน Route สามารถปฏิบัติต่อ signed agent ที่ verified และตัวที่ประกาศเองต่างกันได้ เช่น อนุญาตทั้งสองแบบใน route แบบอ่านอย่างเดียว แต่ใช้ข้อจำกัดที่เข้มงวดกว่ากับตัวที่ declared

ดู วิธีที่ evidence bases ทำงาน หรือ สมัครขอสิทธิ์เข้าถึงก่อนกำหนด

แหล่งอ้างอิง

ดู actor intelligence ในแอปของคุณเอง

อยากคุยก่อนหรือไม่ พูดคุยกับผู้ก่อตั้ง