ฟีเจอร์

เอเจนต์เบราว์เซอร์ของ Dvina

วิธีที่เจ้าของเว็บไซต์ใช้ระบุ ตรวจสอบ อนุญาต หรือบล็อกเบราว์เซอร์ที่ Dvina ใช้ทำงานให้ผู้ใช้

ดูเป็น Markdown

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

เบราว์เซอร์นี้คืออะไร

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

  • ทำงานให้ผู้ใช้ทีละคน เบราว์เซอร์แต่ละตัวเป็นของผู้ใช้ Dvina ที่ลงชื่อเข้าใช้หนึ่งคน และทำงานตามที่ผู้ใช้คนนั้นขอ
  • ไม่ใช่ครอว์เลอร์ ไม่มีรายการเว็บไซต์ที่จะเข้าไปเยี่ยมชมเอง เบราว์เซอร์เปิดหน้าที่จำเป็นต่องานทีละขั้นตอน โดยโหลดหน้า อ่าน แล้วดำเนินการบนหน้านั้นเหมือนที่คนทำ
  • ไม่เคยนำข้อมูลไปใช้ฝึกโมเดล สิ่งที่เบราว์เซอร์ของ Dvina อ่านบนเว็บไซต์ของคุณจะใช้เฉพาะเพื่อทำตามคำขอของผู้ใช้ที่เบราว์เซอร์ทำงานให้เท่านั้น ไม่เคยนำไปใช้ฝึกโมเดล AI
  • ให้ผู้ใช้ตัดสินใจเรื่องของตัวเอง เบราว์เซอร์ไม่พิมพ์รหัสผ่านหรือข้อมูลบัตร เมื่อหน้าเว็บต้องให้ผู้ใช้ลงชื่อเข้าใช้หรือชำระเงิน Dvina จะหยุดและขอให้ผู้ใช้เข้าควบคุมเอง การใช้ข้อมูลส่วนตัว การส่ง การชำระเงิน และการลบจะรอให้ผู้ใช้ยืนยันก่อน
  • ไม่ผ่านการตรวจสอบว่าเป็นมนุษย์ให้ผู้ใช้ เมื่อพบการตรวจสอบว่าผู้ที่กำลังใช้เบราว์เซอร์เป็นคนจริง เช่น การตรวจสอบของ Cloudflare, Turnstile, reCAPTCHA หรือ hCaptcha เบราว์เซอร์จะไม่คลิก ไม่แก้โจทย์ และไม่โหลดการตรวจสอบนั้นใหม่ หากการตรวจสอบผ่านได้เอง Dvina จะรอ หากยังไม่ผ่าน งานจะหยุด และผู้ใช้จะเข้าควบคุมเบราว์เซอร์ ผ่านการตรวจสอบ แล้วส่งการควบคุมคืน

ระบุคำขอจากเบราว์เซอร์

เบราว์เซอร์ของ Dvina ลงลายเซ็นในทุกคำขอ http และ https ที่ส่งออกด้วย Web Bot Auth ซึ่งเป็นลายเซ็นข้อความ HTTP (RFC 9421) โดยใช้คีย์ Ed25519 แต่ละคำขอมีส่วนหัวสามรายการ:

Signature-Agent: "https://api.dvina.ai"
Signature-Input: sig1=("@authority" "signature-agent");created=<unix time>;expires=<created + 60>;keyid="<key id>";alg="ed25519";nonce="<random>";tag="web-bot-auth"
Signature: sig1=:<Ed25519 signature>:
  • Signature-Agent ระบุ Dvina ซึ่งเป็นต้นทางที่เผยแพร่คีย์
  • Signature-Input ครอบคลุม @authority ของคำขอ (โฮสต์ของคุณ) และส่วนหัว Signature-Agent โดย tag คือ web-bot-auth
  • ลายเซ็นแต่ละรายการมีอายุ 60 วินาที ตั้งแต่ created ถึง expires
  • keyid คือค่า JWK thumbprint ของคีย์ (RFC 7638)

เบราว์เซอร์ส่ง user agent ของ Chromium เอง ซึ่งเหมือนกับ Chromium ทั่วไปบน Linux ตัวอย่างเช่น:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36

เวอร์ชัน Chrome ของเบราว์เซอร์จะเปลี่ยนไปตามการอัปเดตของ Chromium และ user agent ไม่ได้ระบุข้อมูลใด ๆ เกี่ยวกับ Dvina ให้ระบุ Dvina จากลายเซ็น ไม่ใช่จาก user agent

หมายเหตุ

เมื่อใช้แอปเดสก์ท็อป ผู้ใช้ยังสามารถให้ Dvina ใช้เบราว์เซอร์บนคอมพิวเตอร์ของตัวเองได้ด้วย เบราว์เซอร์นั้นไม่ลงลายเซ็นในคำขอ และดูเหมือนการท่องเว็บของผู้ใช้เอง

ตรวจสอบลายเซ็น

Dvina เผยแพร่คีย์สาธารณะไว้ที่ไดเรกทอรีคีย์:

https://api.dvina.ai/.well-known/http-message-signatures-directory

ไดเรกทอรีตอบกลับด้วย Content-Type: application/http-message-signatures-directory+json และ JSON Web Key Set ที่มีคีย์สาธารณะ Ed25519 ของ Dvina คำตอบลงลายเซ็นด้วยคีย์เดียวกัน โดยมี tag="http-message-signatures-directory"

หากเว็บไซต์ของคุณอยู่บน Cloudflare ทาง Cloudflare จะตรวจสอบเอเจนต์ที่ลงลายเซ็นให้คุณ หากต้องการตรวจสอบคำขอด้วยตัวเอง:

  1. ตรวจสอบว่า Signature-Agent เป็น "https://api.dvina.ai" และ Signature-Input มี tag="web-bot-auth"
  2. ตรวจสอบว่าเวลาปัจจุบันอยู่ระหว่าง created และ expires
  3. ดึงไดเรกทอรีคีย์และเลือกคีย์ที่มีค่า JWK thumbprint ตรงกับ keyid
  4. สร้างฐานลายเซ็นจาก @authority, signature-agent และพารามิเตอร์ลายเซ็นตามที่ RFC 9421 อธิบาย แล้วตรวจสอบ Signature ด้วยคีย์ Ed25519 นั้น

ใครก็ส่งส่วนหัวเหล่านี้ได้ ให้ถือว่าคำขอมาจาก Dvina ก็ต่อเมื่อตรวจสอบลายเซ็นกับไดเรกทอรีคีย์ของ Dvina แล้วผ่านเท่านั้น

อนุญาตหรือบล็อกเบราว์เซอร์

เบราว์เซอร์ของ Dvina ทำงานแบบเรียลไทม์ให้กับผู้ใช้หนึ่งคน ซึ่งเป็นทราฟฟิกประเภทที่อยู่ในขอบเขตของค่าที่ตั้งไว้ล่วงหน้า Agent ของ Cloudflare หากเว็บไซต์ของคุณใช้ Cloudflare:

  • นโยบายบอต AI: ใน Security Settings ให้เลือก Configure AI bot policies สำหรับ Agent ให้เลือก Allow (do not block), Block on pages with ads หรือ Block (on all pages)
  • กฎ WAF ที่กำหนดเอง: คำขอจากบอตที่ได้รับการยืนยันและเอเจนต์ที่มีลายเซ็นจะมีค่า cf.client.bot (cf.bot_management.verified_bot หากใช้ Bot Management) เป็น true ใช้ค่านี้ในกฎที่กำหนดเองเพื่อข้ามการตรวจสอบ ให้ยืนยันตัวตน หรือบล็อกคำขอเหล่านี้
  • ไดเรกทอรีบอตที่ได้รับการยืนยัน: ดูเอเจนต์ที่ Cloudflare ยืนยันได้ใน Cloudflare Radar

Anywhere else, verify the signature as described above, then allow or block requests whose verified Signature-Agent is "https://api.dvina.ai".

ติดต่อเรา

มีคำถามเกี่ยวกับเบราว์เซอร์ของ Dvina บนเว็บไซต์ของคุณ หรือพบคำขอที่ไม่ได้ทำงานตามที่หน้านี้อธิบายไว้ใช่ไหม? ส่งอีเมลถึง support@dvina.ai พร้อมที่อยู่เว็บไซต์ของคุณ และหากมีข้อมูล ให้ระบุเวลาและ keyid ของคำขอเหล่านั้นด้วย