2 คะแนน โดย GN⁺ 2024-08-05 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แอปสตรีมมิงผิดกฎหมายบน iOS บางตัวถูกออกแบบให้ผ่านการตรวจสอบในฐานะแอปปกติ ก่อนจะเปิดฟังก์ชันที่ซ่อนอยู่ภายหลัง โดยจากการวิเคราะห์โค้ดพบทั้งการ บล็อกตามตำแหน่งที่ตั้ง และการอัปเดตระยะไกล
  • แอปที่เผยแพร่ผ่านบัญชีนักพัฒนาคนละบัญชีกันกลับใช้ โค้ดเบสเดียวกัน และสามารถเปลี่ยนบางส่วนของแอปได้โดยไม่ต้องส่งให้ App Store ตรวจสอบใหม่ ผ่าน React Native และ Microsoft CodePush SDK
  • แอปบางตัวใช้ทั้งที่เก็บบน GitHub และ API ตำแหน่งตาม IP เพื่อตรวจสอบข้อมูลประเทศ ภูมิภาค เมือง และค่าลองจิจูด-ละติจูดโดยประมาณ และจะไม่แสดงอินเทอร์เฟซที่ซ่อนอยู่เมื่ออยู่ในสภาพแวดล้อมการตรวจสอบของ Apple
  • แอปจะรอไม่กี่วินาทีหลังเปิดใช้งานครั้งแรกก่อนเรียก API ตำแหน่ง เพื่อหลีกเลี่ยง กระบวนการตรวจสอบอัตโนมัติ และแม้ตั้งพร็อกซีให้เป็น San Jose, California หน้าจอที่ซ่อนอยู่ก็ยังไม่ปรากฏ
  • Apple อาจเพิ่มการทดสอบพฤติกรรมตามตำแหน่งและเข้มงวดกับการลบแอปหลอกลวงมากขึ้น แต่ขณะนี้เปิดเผยเพียงว่าได้ลบแอปดังกล่าวแล้ว และยังไม่ได้ระบุมาตรการเฉพาะเพื่อป้องกันไม่ให้แอปลักษณะคล้ายกันผ่านการอนุมัติ

โครงสร้างที่เปลี่ยนพฤติกรรมให้เป็นคนละแอปหลังผ่านการตรวจสอบ

  • 9to5Mac รายงานกรณีที่แอปสตรีมมิงผิดกฎหมายบน iOS หลายตัวหลอกการตรวจสอบของ App Store จนได้รับอนุมัติ และต่อมาได้ยืนยันรายละเอียดการหลบเลี่ยงจากการวิเคราะห์โค้ด
  • “Collect Cards” เคยขึ้นไปอยู่ในอันดับต้น ๆ ของชาร์ตดาวน์โหลดแอปฟรีบน App Store ในบางประเทศ ก่อนที่ Apple จะลบออกหลังถูกเปิดเผย
  • หลังจากนั้น แอปเวอร์ชันอื่นของตัวเดียวกันก็กลับขึ้นมาบน App Store อีก ทำให้วิธีการหลอกทีมรีวิวกลายเป็นเป้าหมายของการวิเคราะห์

โค้ดเบสร่วมและการอัปเดตระยะไกล

  • แอปที่ถูกวิเคราะห์ถูกเผยแพร่ผ่านบัญชีนักพัฒนาต่างกัน แต่ใช้ โค้ดเบสเดียวกัน
  • แอปเหล่านี้สร้างด้วย React Native ซึ่งเป็นเฟรมเวิร์กข้ามแพลตฟอร์มที่ใช้ JavaScript
  • การใช้ CodePush SDK ของ Microsoft ช่วยให้อัปเดตบางส่วนของแอปได้โดยไม่ต้องส่งบิลด์ใหม่เข้า App Store
  • การใช้ React Native และ CodePush เองไม่ได้ขัดกฎของ App Store และแอปยอดนิยมจำนวนมากก็ใช้แนวทางนี้
  • นักพัฒนาที่ไม่หวังดีนำเทคโนโลยีอัปเดตที่ถูกต้องตามปกตินี้มาใช้เพื่อหลบเลี่ยงการตรวจสอบของ App Store

ใช้ตำแหน่งที่ตั้งเพื่อตรวจจับสภาพแวดล้อมการรีวิวของ Apple

  • หนึ่งในแอปที่ถูกวิเคราะห์ชี้ไปยัง GitHub repository ที่ดูเหมือนให้ไฟล์สำหรับแอปสตรีมมิงผิดกฎหมายหลายตัว
  • แอปดังกล่าวใช้ API เฉพาะ เพื่อตรวจสอบตำแหน่งของอุปกรณ์จากที่อยู่ IP
    • API จะส่งคืนข้อมูลอย่างประเทศ ภูมิภาค เมือง และค่าลองจิจูดกับละติจูดโดยประมาณ
  • เมื่อเปิดแอปครั้งแรก แอปจะรอไม่กี่วินาทีก่อนเรียก API ตำแหน่ง
    • ด้วยความหน่วงนี้ ใน กระบวนการตรวจสอบอัตโนมัติ ของ App Store จึงไม่เห็นพฤติกรรมผิดปกติจากโค้ดของแอป
  • 9to5Mac ใช้พร็อกซีปลอมตำแหน่งเป็น San Jose, California เพื่อตรวจสอบพฤติกรรมของแอป
    • ในตำแหน่งนี้ แอปจะไม่แสดงอินเทอร์เฟซที่ซ่อนอยู่อย่างเด็ดขาด

แสดงอินเทอร์เฟซจริงหลังได้รับอนุมัติ

  • หลังจาก Apple อนุมัติแอปที่แสดงเพียงฟังก์ชันพื้นฐาน นักพัฒนาจะอัปเดตแอปด้วยสิ่งที่ต้องการผ่าน CodePush
  • แอปจะแสดงอินเทอร์เฟซจริงเฉพาะในตำแหน่งที่ถือว่า “ปลอดภัย”
  • โครงสร้างแบบนี้ทำให้พฤติกรรมของแอปในสภาพแวดล้อมของ Apple ระหว่างการรีวิว กับในสภาพแวดล้อมของผู้ใช้ทั่วไปแตกต่างกันได้

โจทย์รับมือที่ Apple ยังต้องแก้

  • Apple อาจปรับปรุงกระบวนการตรวจสอบได้ด้วย การทดสอบเพิ่มเติม เพื่อยืนยันว่าแอปทำงานอย่างไรในแต่ละตำแหน่ง
  • ยังจำเป็นต้องมีการรับมือเชิงรุกมากขึ้นในการค้นหาและลบแอปหลอกลวงออกจาก App Store
  • ในปี 2017 Uber เคยถูกกล่าวหาว่าใช้ “geofence” กับสำนักงานใหญ่ของ Apple ใน Cupertino
    • กล่าวคือเมื่อแอปทำงานในตำแหน่งดังกล่าว โค้ดที่ใช้เก็บลายนิ้วมือผู้ใช้และติดตามข้ามเว็บจะถูกปิดใช้งานโดยอัตโนมัติ
  • ตามเอกสารในปี 2021 ทีม App Store Review มีผู้เชี่ยวชาญที่เป็นมนุษย์มากกว่า 500 คน ซึ่งตรวจสอบแอปมากกว่า 100,000 รายการต่อสัปดาห์
    • ถึงอย่างนั้น แอปส่วนใหญ่ก็ยังต้องผ่าน กระบวนการตรวจสอบอัตโนมัติ เพื่อตรวจหาการละเมิดแนวทางของ App Store ก่อนการตรวจแบบแมนนวล
  • โฆษกของ Apple ระบุหลังมีการเปิดเผยเรื่องนี้ว่า แอปดังกล่าวถูกนำออกจาก App Store แล้ว แต่ไม่ได้ให้รายละเอียดเกี่ยวกับมาตรการของบริษัทเพื่อป้องกันไม่ให้แอปคล้ายกันได้รับอนุมัติ

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

 
GN⁺ 2024-08-05
ความคิดเห็นบน Hacker News
  • ต่อให้ Apple ป้องกันการ เลี่ยงข้อจำกัดตามภูมิภาค การซ่อนพฤติกรรมก็ยังทำได้ง่ายมาก

    1. ส่งหมายเลขบิลด์ของแอปไปยังเซิร์ฟเวอร์ด้วยการเรียก API
    2. ใช้การตอบกลับจาก API เพื่อควบคุมว่าจะเปิดใช้ฟีเจอร์ที่ซ่อนอยู่หรือไม่
    3. เปิดฟีเจอร์ที่ซ่อนอยู่ก็ต่อเมื่อแต่ละบิลด์ผ่านการรีวิวแล้วเท่านั้น
    4. กำไร?
      ไม่ต้องใช้โค้ดแบบไดนามิกหรือโค้ดที่รันผ่านอินเทอร์พรีเตอร์เลย และรูปแบบดัดแปลงแบบนี้มีมากพอจนสุดท้ายดูเหมือนจะลดรูปเป็น ปัญหาการหยุดทำงาน ทำให้ตัดสินไม่ได้
    • ใช่แล้ว สุดท้ายวิธีแบบ ระเบิดตรรกะ พวกนี้กันไม่ได้อยู่ดี เป็นแค่เกมแมวจับหนูเท่านั้น
      ต้องมีวิธีรับมือที่อยู่นอกเหนือมาตรการทางเทคนิค เช่น ให้คนที่กระจายตัวอยู่จริง ๆ ช่วยกันทดสอบแอปแบบ crowdsourcing เพื่อหาพฤติกรรมมุ่งร้าย
    • ข้อ 1~3 ยังแทนได้ด้วยวิธีให้แอปตรวจหน้า รายการใน App Store ของตัวเอง
      โดยทั่วไปแล้ว ฟังก์ชันตรวจอัปเดต หรือการเช็กว่ามีเวอร์ชันใหม่หรือไม่ ก็ใช้พร้อมกันเพื่อเช็กได้ว่า “เวอร์ชันนี้ยังอยู่ระหว่างการรีวิวแอปหรือเปล่า?”
    • เหตุผลหนึ่งที่ Apple ทำ due diligence ในกระบวนการ onboarding นักพัฒนาและการทำสัญญานักพัฒนาในระดับหนึ่ง คือเพื่อให้สามารถดำเนิน มาตรการทางกฎหมาย กับนักพัฒนาที่ใช้ระบบในทางที่ผิดได้อย่างมั่นคง
      ความเป็นไปได้ที่จะถูกขับออกจากระบบนิเวศ Apple App Store หรือถูกตอบโต้ทางกฎหมาย เป็นหนึ่งในวิธียับยั้งพฤติกรรมไม่พึงประสงค์ที่ทางเทคนิคไม่สามารถป้องกันได้
    • AI น่าจะใกล้ถึงจุดที่แยก ผู้ใช้สังเคราะห์ ออกจากผู้ใช้จริงไม่ได้แล้วในไม่ช้า เพื่อบรรเทาเทคนิคข้างต้นและเทคนิคอื่น ๆ ในเธรดนี้ Apple คงจะย้ายกระบวนการรีวิวไปสู่รูปแบบที่อัตโนมัติมากและต่อเนื่องอย่างรวดเร็ว
      สุดท้ายต้องใช้แรงกดดันจากทั้งระบบนิเวศและภาครัฐมากขึ้น เพื่อให้ข้อกำหนดการใช้งานสมเหตุสมผลและเป็นธรรม เพราะการแฮ็กเพื่อเลี่ยงข้อกำหนดจะกลายเป็นเรื่องแทบเป็นไปไม่ได้ ผมคิดว่าแฮ็กพวกนี้ฉลาดดี แต่ไม่น่าจะอยู่ได้นาน
  • ถ้าสงสัยถ้อยคำของ Apple เกี่ยวกับ การอัปเดตแบบไดนามิก อย่าง CodePush อยู่ ที่นี่มีอยู่: https://github.com/microsoft/react-native-code-push#store-gu...
    “โค้ดที่เรียกใช้งานได้
    ยกเว้นในกรณีที่ระบุไว้ในย่อหน้าถัดไป แอปพลิเคชันห้ามดาวน์โหลดหรือติดตั้งโค้ดที่เรียกใช้งานได้ โค้ดแบบอินเทอร์พรีเตอร์สามารถดาวน์โหลดลงในแอปพลิเคชันได้ แต่โค้ดดังกล่าวต้อง (a) ไม่เปลี่ยนวัตถุประสงค์หลักของแอปพลิเคชันโดยมอบฟังก์ชันที่ไม่สอดคล้องกับวัตถุประสงค์ที่ตั้งใจและโฆษณาไว้ของแอปพลิเคชันที่ส่งเข้า App Store, (b) ไม่สร้างสโตร์หรือหน้าร้านสำหรับโค้ดหรือแอปพลิเคชันอื่น และ (c) ไม่หลบเลี่ยงการลงนาม แซนด์บ็อกซ์ หรือฟีเจอร์ความปลอดภัยอื่น ๆ ของระบบปฏิบัติการ”

    • อย่างน้อยใน เกมบริการสด แทบ 100% ดาวน์โหลดโค้ดอินเทอร์พรีเตอร์ใหม่บนมือถือเป็นประจำ และโดยพฤตินัยแล้วทั้งหมดนี้เท่ากับเลี่ยงการรีวิวของแอปสโตร์
      ดูเหมือนมีข้อตกลงระหว่างผู้พัฒนาเกมกับ Google/Apple ว่า ให้เลี่ยงการรีวิวได้แลกกับการปล่อยให้รายได้ กล่องสุ่ม ระดับหลายพันล้านดอลลาร์ยังไหลต่อไป
    • ถ้าถึงระดับนี้ กฎนี้ก็ให้ความรู้สึกว่าค่อนข้างเปิดกว้างสำหรับแอปที่โดยผลลัพธ์แล้วยังคงมีวัตถุประสงค์แทบเหมือนเดิม และแนวทางก็ไม่ได้ต่างกันมากนัก
      ชุดฟีเจอร์ที่เห็นได้ชัดอย่างหนึ่งคือวิธีที่แอปจำนวนมากเก็บค่าสมัครสมาชิกนอกระบบชำระเงินในรั้วของ Apple เพราะงานจริงของแอปไม่ได้เกิดขึ้นแค่ในอุปกรณ์ แต่เกิดบนคลาวด์ด้วย การแบ่งแอปออกเป็นแอปโลคัลพื้นฐานกับงานเพิ่มเติมบนคลาวด์มีข้อดี แต่เมื่อประสิทธิภาพอุปกรณ์ดีขึ้นเรื่อย ๆ การดูว่าอะไรทำบนเครื่องได้บ้างก็น่าสนใจขึ้นเรื่อย ๆ
      ถ้าโครงสร้างระดับบนของแอปชัดเจนพอ รายละเอียดที่เติมอยู่ข้างในก็สามารถค่อยเติมทีหลังได้
      ผมชอบสิ่งอย่าง SDUI มานานแล้ว เพราะมันเปิดทางให้สร้างอินเทอร์เฟซที่ไดนามิกมากขึ้นตามความชอบหรือรูปแบบการใช้งานของผู้ใช้ เป็นต้น
      แนวทางการทำซอฟต์แวร์สำหรับขั้นตอนงานที่ตายตัวกำลังล้าสมัยลงเรื่อย ๆ ไม่ว่าจะเป็นความต้องการที่เปลี่ยนไปในแต่ละช่วงของมาตรการล็อกดาวน์ช่วงโรคระบาด หรือการปรับประสบการณ์ผู้ใช้ให้เป็นส่วนบุคคลอย่างแท้จริง ซอฟต์แวร์ที่มีกรอบคิดตายตัวกำลังถูกแทนที่ด้วยซอฟต์แวร์ที่ต้องการความยืดหยุ่น
  • ตอนที่ต้องทำให้พฤติกรรมที่ Apple ไม่ชอบผ่านไปได้ เคยใช้ ทริกตามเวลา
    หลังส่งแอปไป 20 วัน พฤติกรรมของปุ่มหนึ่งจะเปลี่ยนไป ทำให้กล่องโต้ตอบ “เปิดไฟล์” กระโดดตรงไปยังไดเรกทอรี root ของผู้ใช้

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

  • การเรียกแอปละเมิดลิขสิทธิ์ว่า มุ่งร้าย ดูจะเกินไปหน่อย ผมพลาดอะไรไปหรือเปล่า หรือบทความนี้เขียนโดยเจ้าของลิขสิทธิ์?

    • ในทางกลับกัน ถ้าแอปละเมิดลิขสิทธิ์ทำแบบนี้ได้ มัลแวร์ก็ย่อมทำได้แน่นอน และผมคิดว่า Apple ใส่ใจ การละเมิดลิขสิทธิ์ มากกว่ามัลแวร์จริง ๆ
      แต่แอปรายได้สูงสุดก็เป็นแอปหลอกลวงอยู่แล้ว และเท่าที่จำได้ก็เป็นแบบนั้นมาตลอด จึงไม่ใช่เรื่องใหม่อะไร
  • “ตามเอกสารที่เผยแพร่ในปี 2021 ทีม App Store Review มีผู้เชี่ยวชาญที่เป็นมนุษย์มากกว่า 500 คน คอยตรวจสอบแอปมากกว่า 100,000 แอปต่อสัปดาห์”
    ถ้ามองข้ามถ้อยคำกำกวมของประโยคนี้ และสมมติว่าผู้รีวิวใช้เวลาทำงาน 100% ไปกับการรีวิว พร้อมทำงานตามสัปดาห์การทำงานมาตรฐาน ก็จะเหลือเวลาประมาณ 12 นาที ต่อแอปหนึ่งตัว

    • ในปีเดียวกันคือ 2021 รายได้รวมของ Apple App Store อยู่ที่ 85 พันล้านดอลลาร์
      น่าเสียดายที่ Apple ผู้น่าสงสารคงไม่มีเงินพอจ้างผู้รีวิวเพิ่ม เพื่อรับประกันกระบวนการรีวิวที่มีความหมายสำหรับทุกแอป และจ่ายค่าตอบแทนอย่างเพียงพอให้แรงงานที่ทำงานในสภาพแวดล้อมที่เหมาะสม พวกเขาคงกำลังถูกโควตาแอปที่ต้องตรวจในแต่ละสัปดาห์ไล่กดดันอยู่แน่ ๆ
      แล้วทำไม Apple ถึงสมควรได้ 30% อีกนะ?
  • หากแอปล่าสุดผ่านการรีวิวของ App Store และยังอยู่รอด ก็จะมี ช่อง/กลุ่ม Telegram ที่มีคนรวมตัวกันเป็นพัน ๆ คนเพื่อใช้งานมันจนกว่า Apple จะลงมือจัดการ
    ยังมีตลาดสำหรับใบรับรองการเซ็นชื่อและที่นั่งเครื่องนักพัฒนา Apple ด้วย ดังนั้นคนที่มีความรู้ทางเทคนิคมากขึ้นก็สามารถเซ็นชื่อ IPA เองแล้วติดตั้งได้

  • สหรัฐฯ จำเป็นต้องมีกฎหมายแบบ DMA อย่างยิ่ง บริษัทเดียวไม่ควรสามารถกักผู้ใช้ในสหรัฐฯ มากกว่า 60% ไว้ในเรื่องการติดตั้งแอปที่พวกเขาอยากใช้ได้
    เช่นเดียวกัน Apple และ Google สองบริษัทก็ไม่ควรสามารถเก็บ 15–30% ของรายได้ทั้งหมดที่เกิดขึ้นในตลาดแอปมือถือได้

    • เห็นด้วยกับทิศทางนี้ แต่คิดว่ามุมมองนี้เป็น มุมมองนักพัฒนา มากกว่าจะเน้นผู้ใช้
      ก่อนอื่น 60% นั้นเลือก iOS เอง ไม่ใช่ “ตัวประกัน” และสามารถย้ายออกไปได้ อีกทั้งนี่ก็ไม่ใช่พฤติกรรมใหม่ แต่มีมาตั้งแต่ iPhone เปิดตัวแล้ว ผู้บริโภคกำลังลงคะแนนสนับสนุนสิ่งนี้อยู่ [1]
      อย่างที่สอง Google ไม่ได้ควบคุมว่าผู้ใช้ติดตั้งอะไร ดังนั้นตามนิยามแล้วจึงไม่ได้เอาส่วนแบ่งจาก “รายได้ทั้งหมด” คุณค่าส่วนใหญ่ที่มาจากแอปมือถือก็เกิดขึ้นที่อื่น [2] ดังนั้นแม้แต่ตัวเลขของ Apple ก็ยังไม่ถูกต้อง
      ในฐานะนักพัฒนา แน่นอนว่าย่อมอยากเข้าถึงอุปกรณ์ของผู้ใช้ได้ตามใจและรันโค้ดที่ต้องการ น่าเสียดายที่นักพัฒนาบางรายต้องการการเข้าถึงแบบนั้นด้วยเหตุผลที่เป็นอันตรายต่อผู้บริโภค นั่นจึงเป็นเหตุผลที่นักพัฒนาพยายามเล่นงานระบบเหมือนเล่นเกม และแอปที่ซื่อสัตย์กลับถูกปฏิเสธ
      แต่ต้องเข้าใจว่าผู้ใช้ต้องการ การเข้าถึงที่ผ่านการคัดกรอง แบบนี้ และกำลังลงคะแนนสนับสนุน ไม่ใช่คัดค้าน
      [1] เรื่องเมสเซนเจอร์อาจถกเถียงได้ แต่นั่นเป็นปัญหาเรื่องเมสเซนเจอร์ ไม่ใช่เรื่องแอป
      [2] แอปเกือบทั้งหมดที่ผมติดตั้งเป็นแอปฟรี บริษัทที่ทำแอปเหล่านั้นมีรายได้จากส่วนอื่นของระบบ พวกเราก็มี “แอปฟรี” ที่เชื่อมกับผลิตภัณฑ์ และผู้คนจ่ายเงินให้ผลิตภัณฑ์นั้น
    • ได้อ่านบทความหรือยัง? นี่เป็นเรื่องที่ Uber เลี่ยงการรีวิวแล้ว ติดตามผู้ใช้ โดยขัดต่อกฎของ Apple และเจตนาของผู้ใช้ หรือเป็นเรื่องที่แอปอื่น ๆ ทำแบบนั้นเพื่อเผยแพร่ซอฟต์แวร์ละเมิดลิขสิทธิ์
    • จุดยืนของ Apple/Google ก็ดูย้อนแย้งไม่น้อย
      ด้านหนึ่ง ทั้งคู่รับบทเป็น ผู้เฝ้าประตู ในสโตร์ของตัวเอง และอ้างว่าทำให้ผู้ใช้ปลายทางปลอดภัย
      แต่อีกด้านหนึ่ง ถ้าแอปที่เป็นปัญหาทำกำไรได้สูง หรือเกี่ยวข้องกับผลิตภัณฑ์อื่น ๆ จำนวนมากของตนเอง พวกเขาก็อนุญาตความยืดหยุ่นให้ตัวเองในการบังคับใช้กฎแบบเลือกปฏิบัติ
      แล้วใครจะเฝ้าผู้เฝ้า?
    • ถ้าอยากให้ข้อโต้แย้งน่าเชื่อถือขึ้น ก็ควรเพิ่มไอเดียเกี่ยวกับวิธีปกป้องผู้ใช้จากซอฟต์แวร์ไม่ดีด้วย
      แผนสำหรับเรื่องนี้คืออะไร?
    • เห็นด้วย แต่ไม่ค่อยแน่ใจว่าสิ่งนี้เกี่ยวข้องกับบทความอย่างไร
  • แอปสตรีมมิงผิดกฎหมาย”?
    นึกว่าเป็นบทความเกี่ยวกับวิธีทำให้แอปไฟฉายได้รับอนุญาตให้เก็บค่าสมัครสมาชิกเดือนละ 50 ดอลลาร์เสียอีก

  • แอปจำนวนมากเป็นแค่ WebView ที่แสดงหน้าเว็บระยะไกล
    ทุกครั้งที่เซิร์ฟเวอร์อัปเดตหน้า แอปก็อัปเดตตาม และไม่ต้องรีวิว