ป้องกันการขโมยแอปด้วย Goatse
(joshcsimmons.com)- ผู้เขียนได้สร้าง 'Sqword' เกมคำศัพท์บนเบราว์เซอร์ที่รักษาฐานผู้ใช้ได้อย่างมั่นคงโดยไม่มีโฆษณา
- ผู้เขียนค้นพบว่าเว็บไซต์ประเภท "รวมเกม" กำลังโฮสต์ Sqword ผ่าน iFrame และแย่งรายได้จากโฆษณาที่อาจเกิดขึ้นไป
- ผู้เขียนรู้สึกโกรธกับเรื่องนี้ เพราะ Sqword ไม่ใช่แหล่งรายได้ แต่เป็นโปรเจกต์ที่ทำด้วยใจและเปิดให้เล่นฟรีโดยไม่มีโฆษณา
- ผู้เขียนเชื่อว่าแอปควรฟรีหรือระบุค่าใช้จ่ายให้ชัดเจน และไม่ควรมีการขายเพิ่มเติม
- แทนที่จะเพิ่มนโยบายความปลอดภัยของเนื้อหา ผู้เขียนตัดสินใจว่าเมื่อ Sqword ตรวจพบว่ากำลังอยู่ภายใน iFrame ก็จะแสดงภาพช็อก Goatse พร้อมข้อความ
- ผู้เขียนเผยแพร่ภาพ Goatse ไปยังอย่างน้อย 8 โดเมนที่ไม่ใช่โดเมนของตนได้สำเร็จ
- ผู้เขือนเตือนว่าหากนำเว็บไซต์ที่ไม่ใช่ของตนไปแสดงผ่าน iFrame ก็จะไม่มีอำนาจควบคุมเนื้อหา และมันสามารถถูกเปลี่ยนได้ทุกเมื่อ
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เมื่อก่อนด้วยความใจดีแบบโง่ ๆ ผมเคยเปิด เซิร์ฟเวอร์เอฟเฟกต์เสียง ให้ใคร ๆ ก็ดาวน์โหลดได้
แต่ดูเหมือนว่ามีบางแอปลิงก์ตรงมายังรีซอร์สพวกนั้น แล้วแบนด์วิดท์ก็เริ่มพังเพราะมีการดาวน์โหลดแบบใช้ฟรีจำนวนมหาศาล
พอ เปลี่ยน รีซอร์สเหล่านั้น ไม่นานก็หยุด แต่ก่อนหน้านั้นก็มีอีเมลหน้าด้านปนคำด่าจำนวนมากส่งมาบอกให้กู้เอฟเฟกต์เสียงกลับมา
เป็นช่วงเวลาที่สนุกจริง ๆ
ISP อินเดียบางรายขึ้นชื่อเรื่องลิงก์ไปยังไฟล์ภาพขนาดมหึมาบนเว็บของบุคคลที่สาม แล้วปล่อยให้ลูกค้า 300 ล้านคนถล่มเว็บน่าสงสารนั้น
คงประหยัดแบนด์วิดท์ได้ก็จริง แต่ก็แลกกับความเสี่ยงสูงที่จะทำให้ใครบางคนโมโหจนเปลี่ยน asset นั้นให้กลายเป็นอะไรสยอง ๆ
ผมมองว่าการลิงก์ตรงหรือ hotlink แบบนี้ส่วนใหญ่ไม่ได้ทำเพื่อประหยัดเงินหรือด้วยเจตนาร้าย แต่ใกล้เคียงกับความไร้ความสามารถขั้นร้ายแรงมากกว่า
เราเองก็เคยมีปัญหาภาพสินค้าถูก scrape อย่างโหดเหี้ยมเหมือนกัน ถ้ามี rate limit ก็คงปล่อยให้ทำ หรือไม่ก็อาจไม่ทันสังเกต
ปกติเราจะส่ง scraper พวกนั้นไปหาไฟล์หลายกิกะไบต์ หรือภาพตลก ๆ ที่ไม่เกี่ยวข้องแทน ประมาณว่าอยากดาวน์โหลดรูปบีเวอร์รูปเดิม 25,000 ครั้งก็เชิญเลย
เคยมีเสิร์ชเอนจินสมัครเล่นมาถล่มเว็บ จนการบล็อกทราฟฟิกทั้งหมดจาก crawler นั้นง่ายกว่าการติดต่อไปประสานงาน
จะว่า Google กับ Bing อย่างไรก็เถอะ crawler ของพวกเขาทำมาดีและทำงานอย่างมีมารยาท
นึกถึงกรณีที่มีแอปหนึ่งคอยถล่ม ภาพผีเสื้อ ของ Wikimedia เพราะลืมลบออกจากโค้ดตัวอย่าง
หาโพสต์ที่แน่ชัดไม่เจอ แต่มันเป็นกรณีการใช้ทราฟฟิกในทางที่ผิดที่ทั้งตลกและน่าหงุดหงิด ซึ่งเกิดจากนักพัฒนาที่ไม่รู้เรื่อง
แก้ไข: ไม่ใช่ผีเสื้อ แต่เป็นรูปดอกไม้ และผมได้ตอบกลับพร้อมลิงก์ที่เกี่ยวข้องแล้ว
ผมเปิดเว็บหน้าเดียวที่มีแค่กดปุ่มแล้วมีเสียง แค่นั้นเอง แต่ปัญหาคือคนอื่น hotlink แอป Flash ของผม
เลยใช้วิธีเดียวกัน redirect ไปยังแอปเพล็ตอีกตัวให้เล่น เสียงกรีดร้องดังและสยอง แทน
มียอดดาวน์โหลดมหาศาล
ผมก็เคยคิดคล้าย ๆ กัน
มีบอตหรือ vulnerability scanner จำนวนมากที่พยายามเข้ามาที่
/wp-admin.phpของบล็อกผมทั้งที่ผมไม่ได้ใช้ WordPress แต่ access log เต็มไปด้วย 404 จนน่ารำคาญ
เลยวาง “เซอร์ไพรส์” เล็ก ๆ ไว้ให้เหล่า penetration tester ผู้กล้าหาญ เอ่อ นั่นแหละ: https://www.thran.uk/wp-login.php
wp-adminเป็นชื่ออื่น เปลี่ยนชื่อบัญชีแอดมิน และเปลี่ยน พอร์ต SSH ไปใช้อย่างอื่นแค่นี้ก็ทำให้ความพยายามล็อกอินหรือบอตขี้เกียจ 99% งงได้แล้ว
ได้แต่นั่งจ้องรายการน่ารำคาญใน server log บางทีสักวันคงทำ
เมื่อก่อนผมเคยทำงานใน บริษัทซอฟต์แวร์รวบรวม/เผยแพร่ข้อมูลอสังหาริมทรัพย์ ขนาดเล็กที่มีส่วนแบ่งตลาดใหญ่
คู่แข่งชื่อดังรายหนึ่งเริ่ม deep link มายังภาพในเซิร์ฟเวอร์แคช resize ภาพที่เราสร้างเอง และแม้เราจะขออย่างสุภาพให้หยุดหลายครั้ง พวกเขาก็ยังทำต่อ
ในข้อมูลอสังหาริมทรัพย์ ทราฟฟิกภาพเป็นทราฟฟิกเครือข่ายส่วนใหญ่ และทราฟฟิกที่พวกเขาขโมยไปก็มากพอสมควร จนกินแบนด์วิดท์และต้นทุนของเรา
เราเลยแอบใส่ logic ตาม referrer ให้มีโอกาส 1/20 ที่จะส่งภาพ Goatse.cx ออกไป
ไม่ต้องบอกก็รู้ว่า ภายใน 48 ชั่วโมงก็ไม่มีคำขอ deep link จากคู่แข่งรายนั้นอีกเลย
ไม่รู้เหมือนกันว่าทำไมถึงไปตรวจสอบ แต่ไม่ว่าอย่างไรก็ใช่ มันยังใช้งานอยู่
มีอย่างน้อย 6 เว็บในหน้าแรกของผลค้นหา Google ที่ตอนนี้ render goatse
โชคดีที่ในกรณีของผม ลิงก์แรกคือเว็บต้นฉบับ
ถ้าไม่ใช่คนหนึ่งใน “หนึ่งหมื่นผู้โชคดี”[0] ของวันนี้ ที่ไม่เคยเห็น goatse มาก่อน ก็ไม่จำเป็นต้องไปตรวจสอบหรอก :D
[0] - https://xkcd.com/1053/
แก้ไข: การอ้างถึง lucky 10k ของ xkcd เป็นมุก ตกใจน้อยลงหน่อย
ผมทำเกมคำศัพท์อยู่สามเกม และเรื่องแบบนี้เกิดขึ้นกับทั้งสามเกม
น่าหงุดหงิด แต่ผมจะไม่มีทางใช้วิธีแบบที่พวกเขาทำเด็ดขาด เพราะมันเป็นการทำร้ายคนที่ค้นหาเกมแล้วหลงเข้าเว็บผิด
เคยมีครูและนักเรียนติดต่อมาว่าเล่นเกมของผมด้วยกันในห้องเรียนทุกวัน พ่อแม่กับลูกก็เล่นด้วยกันทุกวัน หรือผู้ใหญ่ก็ส่งผลลัพธ์ให้กันทางข้อความทุกวัน
ผมตั้งใจให้มันเป็นประสบการณ์ที่ไม่เรียกร้องอะไรเลย แต่กลับมีคนไปเล่นบนเว็บที่เต็มไปด้วยโฆษณา มันน่าหงุดหงิด
แต่การ เอา goatse ให้พวกเขาดู นั้นแย่กว่า
ประสบการณ์อาจไม่น่าพอใจ แต่ส่งสารที่ถูกต้องได้แบบจำขึ้นใจมาก
จะมีเหตุผลที่ถูกต้องตามกฎหมายอะไรให้ทำแบบนั้นได้อีก?
มีคนแจ้งบั๊กมา พอตรวจดูถึงพบว่าเขาอยู่ในเว็บโคลนที่เต็มไปด้วยโฆษณา
ในแอปของผมมันไปไกลหลายชั้น ถึงขั้นที่หนึ่งในโจรขโมยแอปฝังแอปของโจรอีกคนเอาไว้ด้วย
https://imgur.com/a/0qW0y1r
สิ่งที่น่าหงุดหงิดที่สุดคือ Google
ผลการค้นหาทุกวันนี้แย่มากจนถึงแม้มีคนเล่นเกมวันละหลายพันคนและลิงก์บนโซเชียลมีเดีย ก็ยังดันเกมของผมขึ้นอันดับแรกไม่ได้
บน Bing, DDG, Kagi ผมอยู่อันดับ 1
เว็บพวกนี้ลิงก์หากันเอง และอัลกอริทึมโง่ ๆ ของ Google ก็ชอบแบบนั้น
ปกติพวกเขาไม่ได้ใช้ iFrame แต่พร็อกซีคำขอทั้งหมดแทน
หลังจากเริ่มใช้ CloudFlare เป็น CDN ก็กันโจรขโมยแอปไปได้บางราย
ผมไม่ใช่ทนายเลย แต่คงไม่ทำเรื่องแบบนี้เพราะกลัวจะติด กฎหมายเกี่ยวกับสื่อลามกอนาจาร
ตัวอย่างเช่น ในสหราชอาณาจักรมีกฎหมาย cyber flashing ที่ถ้าส่งภาพโจ่งแจ้งด้วยวิธีใดก็ตามโดยมีเจตนาทำให้ผู้อื่นทุกข์ใจ อาจติดคุกได้ 2 ปี
ถึงอย่างนั้นอัยการคนไหนก็คงไม่ฟ้องคดีแบบนี้
นี่ออกนอกเจตนารมณ์ของกฎหมายที่สร้างมาเพื่อป้องกันภาพอวัยวะเพศที่ไม่พึงประสงค์และการคุกคามแบบเจาะจงอย่างชัดเจน
ไม่มีทางถึงขั้นถูกส่งผู้ร้ายข้ามแดนไปสหราชอาณาจักรหรือ UAE
ไม่คุ้มจะกังวลถึงสมมติฐานสุดโต่งแบบนี้
ถ้าหน่วยสืบสวนของรัฐบาลกลางตั้งใจจะทำลายคนบริสุทธิ์ด้วยการพิจารณาคดีห่วย ๆ จริง ๆ ก็มีวิธีที่ง่ายกว่านี้
อาจยัด CSAM ลงในเซิร์ฟเวอร์ หรือกดดันสายข่าวให้ป้ายข้อหาล่วงละเมิดทางเพศก็ได้ เหมือนที่ทำกับ Assange
ในทางปฏิบัติ บทลงโทษเลวร้ายที่สุดที่นักพัฒนาคนนี้พอจะคาดได้อย่างสมเหตุสมผลคือโดเมนถูกถอดลงเท่านั้น
โดเมน .cx เดิมก็จบลงแบบนั้นเหมือนกัน
ไม่รู้ว่าทำไมไม่แค่เปิดโปงพวกเขาต่อสาธารณะและให้ลิงก์โดเมนต้นฉบับ
ประมาณว่า “หากต้องการเล่น Sqword กรุณาเข้าโดยตรง ไซต์ที่คุณกำลังเข้าชมอยู่ตอนนี้เป็นไซต์ที่เอาโฆษณามาแปะรอบเกมต้นฉบับโดยไม่ได้รับความยินยอมจากผู้สร้างเกม” ก็พอ
ถ้าเปลี่ยนเป็น goatse บางคนจะคิดว่า “กะจะเล่น Sqword แต่กลายเป็นโป๊ไปแล้ว” แล้วไม่กลับมาเล่นอีกเลย
ภาพ goatse ไม่ได้ช่วยผู้ใช้แบบนั้นเลย
พวกเขาจะไม่เข้าใจว่ามันหมายถึงอะไร และอาจเลิกไปเลยโดยสิ้นเชิง
สบายใจได้ บทความที่ลิงก์ไว้ตรงนี้ไม่มีภาพ goatse หรือภาพอะไรทำนองนั้น
Yesterday one of my collaborators googled "sqword" and to his surprise, there were tons of first-page results that weren't the sqword.com domain.แทนที่จะทำแบบนั้น ก็ทำให้คนถูกพาไปที่ sqword.com ได้เลย: https://stackoverflow.com/questions/580669/redirect-parent-window-from-an-iframe-action
น่าสมเพชจริง ๆ ที่ Google พอใจกับการทำเงินจากเว็บโจรพวกนี้
พวกเขาจะไม่มีวันแก้ผลการค้นหา เพราะฝ่ายที่ขายโฆษณาแทนพวกมิจฉาชีพก็คือ Google เอง
ต้องทุบการผูกขาด
แถมจะกลายเป็นถูกกฎหมายเพราะมีการแข่งขัน
ยกเลิกทุนนิยมไปเลยดีกว่า