แอพของ iPhone มีสิทธิ์โทรออกโดยที่ผู้ใช้ไม่ต้องทำหรือไม่?


9

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

ตามเอกสารของ Apple :

เมื่อผู้ใช้แตะลิงก์โทรศัพท์ในเว็บเพจ iOS จะแสดงการแจ้งเตือนถามว่าผู้ใช้ต้องการกดหมายเลขโทรศัพท์จริงๆหรือไม่และเริ่มการโทรหากผู้ใช้ยอมรับ เมื่อผู้ใช้เปิด URL ด้วยรูปแบบการโทรในแอพเนทีฟ iOS จะไม่แสดงการเตือนและเริ่มการโทรโดยไม่ต้องแจ้งผู้ใช้เพิ่มเติม

สำหรับฉันแล้วดูเหมือนว่าแอป iPhone ที่เป็นพิษเป็นภัยอาจพูดรอจนกว่าโทรศัพท์จะถูกชาร์จ (และผู้ใช้อาจไม่ได้เข้าร่วม) และเริ่มต้นการโทรไปยังหมายเลขอัตราพรีเมียมเพื่อให้โบนัสแก่นักพัฒนา . ดูเหมือนจะไม่มีสิทธิ์ใด ๆ ใน iOS ที่ฉันสามารถเปลี่ยนเพื่อป้องกันพฤติกรรมนี้เนื่องจากนี่เป็นการเปิดแอปโทรศัพท์ด้วย URL แทนที่จะเข้าถึงข้อมูลโทรศัพท์ใด ๆ

ทุกคนสามารถยืนยันได้ว่าความเข้าใจของฉันถูกต้องหรือไม่และถ้าเป็นเช่นนั้นทำไมในโลก Apple ถึงไม่ปิดรูโหว่เช่นนี้

คำตอบ:


8

ฉันได้ทำการตรวจสอบพฤติกรรมของ iOS โดยการทดลองโทรออกจากหนึ่งในแอพของฉัน

นี่คือผลลัพธ์:

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

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

ปัจจุบัน iOS ไม่มีกลไกใด ๆ ในการบล็อกการโทรเริ่มต้นจากแอพใดแอพหนึ่ง แต่สามารถเกิดขึ้นได้หากแอพนั้นอยู่เบื้องหน้า


ขอบคุณสำหรับการตรวจสอบที่ครอบคลุมคำตอบที่ยอดเยี่ยม ฉันดีใจที่ได้ยินเป็นเพียงในเบื้องหน้า แต่ฉันไม่สามารถช่วยได้ แต่คิดว่ามันไม่ยากเกินไปที่จะประดิษฐ์แอพที่น่าจะถูกทิ้งไว้โดยไม่มีใครดูแลและเบื้องหน้า - แอพกล้องถ่ายรูปทำเวลาล่วงเลยเป็น ตัวอย่างที่ดีของประเภทของสิ่ง ฉันยังคงต้องการเปิด URL ในแอพอื่น ๆ คือการอนุญาตให้เปิดแอปอื่น ๆ - เพิ่งยืนยันครั้งแรกต่อแอพภายนอกไม่ใช่ทุกครั้ง ฉันยอมรับว่ามีความหมาย UX อย่างไรก็ตาม ฉันเดาว่าทุกคนแค่ต้องระวังตัว
Cartroo

5

ฉันทำแอพทดสอบเพื่อตรวจสอบเรื่องนี้แล้ว แอปสามารถเปิด URL เช่นtel://123456789เมื่ออยู่ในเบื้องหน้าและเปิดใช้งานเท่านั้น เมื่อฉันเรียกรหัสนี้แม้หลังจากป้อนสถานะพื้นหลัง API เพื่อเปิด URL นี้ก็ไม่ได้ทำอะไรเลย ดังนั้นเพื่อตอบคำถามของคุณ - แอปจะไม่สามารถโทรออกโดยที่คุณไม่รู้ตัว

เพื่อทดสอบวางนี้ในของคุณAppDelegate:

- (void)applicationDidEnterBackground:(UIApplication *)application {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}

คำตอบที่ดีขอบคุณสำหรับรหัส ถ้าฉันสามารถยอมรับคำตอบทั้งสองฉันจะ
Cartroo

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.