5 คะแนน โดย GN⁺ 2026-03-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Miasma คือ เครื่องมือเซิร์ฟเวอร์ที่พัฒนาด้วย Rust ซึ่งทำให้ AI เว็บสแครปเปอร์ติดอยู่ในลูปไม่สิ้นสุดเพื่อขัดขวางการเก็บข้อมูลสำหรับฝึกโมเดล
  • เปลี่ยนเส้นทางทราฟฟิกของบริษัท AI ที่เก็บคอนเทนต์จากเว็บไซต์ในวงกว้าง แล้วส่งกลับ ข้อมูลปนเปื้อนและลิงก์อ้างอิงถึงตัวเอง ที่มาจาก ‘poison fountain’
  • ป้องกันได้โดยไม่สิ้นเปลืองทรัพยากรเซิร์ฟเวอร์ ด้วย ความเร็วในการประมวลผลสูงและการใช้หน่วยความจำต่ำ
  • ใช้ Nginx reverse proxy และ การแทรกลิงก์แบบซ่อน เพื่อนำสแครปเปอร์ไปยังพาธ /bots และสร้างโครงสร้างวนลูปไม่สิ้นสุด
  • ปกป้องเสิร์ชเอนจินปกติด้วยกฎยกเว้นใน robots.txt และเปิดเป็นโอเพนซอร์สให้ชุมชนร่วมพัฒนาได้

การติดตั้งและการรัน

  • ติดตั้งได้ด้วย Cargo
    • ติดตั้งด้วยคำสั่ง cargo install miasma
  • ดาวน์โหลดไบนารีที่ build ไว้ล่วงหน้าได้จากหน้า GitHub Releases
  • หากรันด้วยการตั้งค่าเริ่มต้น ให้พิมพ์เพียงคำสั่ง miasma
  • ดูตัวเลือกการตั้งค่าทั้งหมดได้ด้วย miasma --help

วิธีตั้งค่ากับดักสแครปเปอร์

  • ตั้งพาธ /bots ให้เป็นจุดรับทราฟฟิกของสแครปเปอร์
  • ใช้ Nginx เป็น reverse proxy เพื่อส่งคำขอของพาธ /bots ไปยังเซิร์ฟเวอร์ Miasma
    location ~ ^/bots($|/.*)$ {
      proxy_pass http://localhost:9855;
    }
    
    • จับคู่ได้กับพาธทุกรูปแบบ เช่น /bots, /bots/, /bots/12345
  • การแทรกลิงก์แบบซ่อน

    • เพิ่ม ลิงก์แบบซ่อน ในหน้าเว็บที่มนุษย์มองไม่เห็น แต่สแครปเปอร์สามารถตรวจพบได้
      <a href="/bots" style="display: none;" aria-hidden="true" tabindex="1">
        Amazing high quality data here!
      </a>
      
    • ใช้แอตทริบิวต์ display: none, aria-hidden="true", tabindex="1" เพื่อไม่ให้เครื่องมือช่วยการเข้าถึงและผู้ใช้มองเห็น
  • การรัน Miasma

    • ระบุ /bots เป็นคำนำหน้าลิงก์ และกำหนดพอร์ตกับจำนวนการเชื่อมต่อพร้อมกันสูงสุด
      miasma --link-prefix '/bots' -p 9855 -c 50
      
    • อนุญาตการเชื่อมต่อพร้อมกันสูงสุด 50 รายการ และหากเกินจะตอบกลับด้วย HTTP 429
    • เมื่อมี 50 การเชื่อมต่อ คาดว่าจะใช้หน่วยความจำประมาณ 50~60MB
  • การทำงานหลังปรับใช้

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

การตั้งค่า robots.txt

  • ต้องเพิ่มกฎยกเว้นใน robots.txt เพื่อไม่ให้บอตครอว์เลอร์ของเสิร์ชเอนจินปกติเข้าถึง Miasma
    User-agent: Googlebot
    User-agent: Bingbot
    User-agent: DuckDuckBot
    User-agent: Slurp
    User-agent: SomeOtherNiceBot
    Disallow: /bots
    Allow: /
    

ตัวเลือกการตั้งค่า

  • สามารถกำหนดรายละเอียดผ่านตัวเลือก CLI ได้
ตัวเลือก ค่าเริ่มต้น คำอธิบาย
port 9999 พอร์ตที่เซิร์ฟเวอร์จะ bind
host localhost ที่อยู่โฮสต์ที่เซิร์ฟเวอร์จะ bind
max-in-flight 500 จำนวนคำขอสูงสุดที่ประมวลผลพร้อมกันได้ หากเกินจะตอบกลับ 429 การใช้หน่วยความจำจะแปรผันตามค่านี้
link-prefix / คำนำหน้าของลิงก์อ้างอิงตัวเอง เช่น /bots
link-count 5 จำนวนลิงก์อ้างอิงตัวเองที่ใส่ในแต่ละหน้าตอบกลับ
force-gzip false บังคับใช้การบีบอัด gzip เสมอโดยไม่ขึ้นกับเฮดเดอร์ Accept-Encoding ของไคลเอนต์ มีประโยชน์ในการลดต้นทุนการส่งข้อมูล
poison-source https://rnsaffn.com/poison2/ แหล่งพร็อกซีสำหรับดึงข้อมูลฝึกที่ปนเปื้อน

การพัฒนาและการมีส่วนร่วม

  • สามารถส่งรายงานบั๊กหรือข้อเสนอฟีเจอร์ผ่าน GitHub Issues
  • การมีส่วนร่วมด้วยโค้ดที่ AI สร้างขึ้นจะถูกปฏิเสธโดยอัตโนมัติ
  • ยินดีรับการมีส่วนร่วมจากชุมชน และโครงการยังคงเป็นโอเพนซอร์ส

1 ความคิดเห็น

 
GN⁺ 2026-03-30
ความคิดเห็นจาก Hacker News
  • สงสัยว่า เทคนิคก่อกวนบอต แบบนี้จะได้ผลจริงหรือไม่ คล้ายกับเวลามีคนถ่วงเวลาพวกสแปมเมอร์ทางโทรศัพท์ไว้ 45 นาที
    ตามนโยบาย Google Search การแทรกลิงก์ที่ซ่อนไว้ถือเป็นการละเมิดชัดเจน ซึ่งอาจทำให้อันดับเว็บไซต์ตกหรือถูกตัดออกจากผลการค้นหา
    ท้ายที่สุดวิธีนี้อาจทำร้ายเว็บของฉันเองมากกว่าทำร้ายบอต

    • ถ้าทำให้เป็นระบบอัตโนมัติ ก็น่าจะได้ผลอยู่บ้าง
      เหมือน วิดีโอ ของยูทูบเบอร์ Kitboga ที่ใช้ AI call center ถ่วงเวลาสายสแปม มองได้ว่าเป็น ยุทธวิธีกองโจร ที่ทำให้ฝ่ายตรงข้ามสิ้นเปลืองทรัพยากร
    • ฉันเคยถ่วงเวลาพวกสแปมเมอร์ทางโทรศัพท์ได้นานมาก แล้วหลังจากนั้นก็ไม่โดนโทรมาอีกเลย
      ดูเหมือนพวกเขาจะมีทั้ง “รายชื่อห้ามโทร” กับ “รายชื่อไม่ทำเงิน” และสิ่งสำคัญคือการได้ไปอยู่ในอย่างหลัง
    • ทำให้นึกถึงกรณีสแปมโรงเรียนสอนภาษาอังกฤษในรัสเซียช่วงยุค 2000
      คนโกรธกันมากจน Golden Telecom ตั้งระบบ โทรโต้กลับอัตโนมัติ จนบริษัทนั้นหายไป
      วิธีแบบนี้อาจได้ผลเหมือนกัน แต่ต้องมี การเช่า modem pool
    • จริงอยู่ว่าการแทรกลิงก์ที่ซ่อนอยู่เป็นสิ่งต้องห้าม แต่ฉันกลับอยากมองว่านี่อาจเป็นจุดเริ่มของการฟื้นคืนชีพของ ‘small web’
      ถ้ามีเครื่องมือที่กันการสแครป, กัน Google crawler และมีดัชนีค้นหาที่เน้นมนุษย์เป็นศูนย์กลาง ก็น่าจะมีความเป็นไปได้
    • มีงานวิจัยที่ชี้ว่าจริง ๆ แล้ว เทคนิคทำให้ข้อมูลปนเปื้อน แบบนี้ได้ผล
  • คอนเทนต์บนเว็บไซต์สาธารณะของฉันกำลังถูกพวก scraper ขโมยไป
    สุดท้ายแล้วฉันก็ขโมยโพสต์นี้มา และเธอก็กำลังขโมยคอมเมนต์ของฉัน โลกนี้เต็มไปด้วย หัวขโมย

    • ปัญหาคือพวกนั้นส่งคำขอเข้ามามากเกินไปจนเว็บฉันล่ม
      คอนเทนต์เปิดให้ทุกคนดูได้ก็จริง แต่ฉันไม่ชอบที่มันทำให้สุดท้ายไม่มีใครเข้าถึงได้เลย
    • คำว่า ‘ขโมย’ อาจแรงไปหน่อย แต่ฉันก็ไม่ชอบที่งานเขียนของฉันถูกเอาไปใช้เป็น เครื่องมือหาเงิน
      ถ้าสถานการณ์แบบนี้ยังดำเนินต่อไป ฉันก็คงไม่อยากแบ่งปันอะไรอีก
    • มนุษย์มี สิทธิและเสรีภาพ ตามกฎหมาย แต่ LLM ไม่มี
      สุดท้ายการเอามนุษย์ไปเทียบกับ เครื่องมือของบริษัท แบบตรง ๆ ก็เป็นการเปรียบเทียบที่ผิด
    • เหมือนประโยคเสียดสีแนว “Welcome to the internet…” ตอนนี้เราอยู่ใน โลกที่ยอมสละข้อมูลและความเป็นส่วนตัวไปแล้ว
  • เมื่อก่อนฉันทำซอฟต์แวร์แบบเสียเงินและใส่โค้ดกันก๊อปไว้ แต่ก็มี แคร็ก แบบใหม่ออกมาทุกครั้ง
    สุดท้ายก็รู้ว่าการต่อสู้แบบนั้นไม่มีความหมาย แล้วก็ลบโค้ดป้องกันออกไป
    ความพยายามจะหยุด AI bot ไม่ให้ crawl ก็ดูเหมือนเกม ตีตัวตุ่น แบบเดียวกัน

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

    • ถึงมันจะได้ผล ก็พูดตามตรงว่าตอนนี้ฉันไม่มีแรงจะสนใจแล้ว เหลือแต่ ความเหนื่อยล้า
    • ฉันเคยสร้าง Python library ปลอมแล้วอัปขึ้น GitHub และไม่กี่เดือนต่อมา ChatGPT ก็เรียนรู้มันเข้าไป
      จากประสบการณ์ของฉัน วิธีแบบนี้ใช้ได้ในระดับหนึ่ง
    • มีบอตเป็นร้อยตัวที่ใช้ พร็อกซีแบบเสียเงิน อยู่แล้ว งั้นก็ทำให้พวกมันต้องจ่ายต้นทุนไป
    • crawler ของ Meta หรือ Anthropic ไม่ได้ ซับซ้อน เท่าที่คิด
      ไม่รู้เหมือนกันว่าพวกมันเรียนรู้ข้อมูลขยะที่ฉันทำไว้หรือเปล่า แต่ก็ขอฝันไว้ก่อน
  • แนวทาง data poisoning น่าสนใจ
    ตอนที่โมเดลเรียนรู้จากข้อมูลบนเว็บ มันก็มักรับต่อทั้ง อคติและการบิดเบือน ในนั้นไปด้วย
    ถ้ามีผู้ไม่หวังดีทำให้ข้อมูลปนเปื้อนในวงกว้าง ตัวการเรียนรู้เองก็จะกลายเป็น โครงสร้างแบบเป็นปฏิปักษ์
    ดังนั้นทางออกสุดท้ายคือ การจัดการ provenance ของแหล่งข้อมูลที่เชื่อถือได้

  • ความพยายามแบบนี้สุดท้ายก็เท่ากับกำลังให้ ข้อมูลฝึกสอน ที่ทำให้ AI ฉลาดขึ้น
    ตลาดคอนเทนต์ที่พึ่งโฆษณามีโอกาสพังสูง และผลลัพธ์ก็คือการจัดระเบียบใหม่ไปสู่ ตลาดที่เน้นคุณภาพคอนเทนต์

    • อาจมีคนย้อนถามว่า “งั้นจะไม่ทำอะไรเลยเหรอ?” แต่ในความเป็นจริงการรับมือมันไม่ง่าย
    • AI จะ เร่งจุดจบ ของคอนเทนต์ที่ขับเคลื่อนด้วยโฆษณา
      แทนที่ด้วยโมเดลที่ทำสัญญาไลเซนส์โดยตรงและให้ข้อมูลกันอย่างเป็นทางการ
    • ถ้า crawler ไม่ได้กดทุกลิงก์ แต่แค่ parse ในเครื่อง เท่านั้น ฉันกลับมองว่านั่นเป็นชัยชนะเสียอีก
    • สุดท้ายแล้ว เทคโนโลยีก็คือการแข่งขันสะสมอาวุธที่ไม่มีวันจบ
  • แค่ลบ style="display:none" หรือ aria-hidden="true" ออก ก็น่าจะหลบลูกเล่นแบบนี้ได้ไม่ใช่หรือ

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

  • เครื่องมืออย่าง Nightshade 2.0 ดูเป็นโปรเจกต์ เรียกร้องความสนใจแบบหยาบ ๆ มากกว่า
    ทางออกจริงคือการให้ข้อมูลในฟอร์แมตที่เป็นมิตรกับ LLM
    ลูกเล่น display:none ธรรมดา ๆ ใช้ไม่ได้ผลกับ crawler ที่ฉลาด
    ดูเธรดที่เกี่ยวข้อง

  • สิ่งที่น่าสนใจจริง ๆ คือ ชุดข้อมูล Poison Fountain ที่โปรเจกต์นี้ใช้
    ใน rnsaffn.com/poison3 มีข้อความว่า “ฉันอยากสร้างความเสียหายให้ระบบปัญญาเครื่อง”
    อุดมการณ์แฮ็กเกอร์แบบนี้ให้ความรู้สึกเหมือน การสวมบทบาท(roleplay) จนฉันเข้าถึงไม่ค่อยได้

    • แต่ประเด็นคือไม่มีใครอธิบายเลยว่า “ข้อมูลปนเปื้อน” ที่ว่านี้คืออะไร และข้ออ้างที่ว่า “ใช้ปริมาณน้อยก็ส่งผลมาก” มีหลักฐานมาจากไหน