การแก้ไขช่องโหว่ File-based XSS

ข้อมูลนี้มีไว้สำหรับนักพัฒนาที่แอปของตนเสี่ยงต่อการถูกโจมตีแบบ File-based Cross-Site Scripting

สิ่งที่เกิดขึ้น

แอปของคุณอย่างน้อย 1 แอปมีช่องโหว่ File-based Cross-Site Scripting ซึ่งต้องได้รับการแก้ไข โปรดดูประกาศใน Play Console เราอาจนำแอปที่มีช่องโหว่ด้านความปลอดภัยที่ไม่ได้รับการแก้ไขออกจาก Google Play หลังพ้นกำหนดเวลาที่แสดงใน Play Console

ต้องดำเนินการ​

  1. ลงชื่อเข้าใช้ Play Console และไปที่ส่วนการแจ้งเตือนเพื่อดูแอปที่ได้รับผลกระทบและกำหนดเวลาในการแก้ไขปัญหาเหล่านี้
  2. อัปเดตแอปที่ได้รับผลกระทบและแก้ไขช่องโหว่
  3. ส่งเวอร์ชันที่อัปเดตของแอปที่ได้รับผลกระทบ

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

รายละเอียดเพิ่มเติม

WebView ที่ WebSettings ตั้งค่า setAllowFileAccessFromFileURLs หรือ setAllowUniversalAccessFromFileURLs ไว้เป็น "จริง" ต้องไม่โหลดเนื้อหาเว็บใดๆ ที่ไม่น่าเชื่อถือ รวมถึงเนื้อหาจากโดเมนที่เชื่อถือได้ซึ่งโหลดผ่าน HTTP เนื้อหาเว็บหรือเครือข่ายที่เป็นอันตรายอาจมีการแทรกสคริปต์เพื่อเปลี่ยนเส้นทาง WebView ไปยังไฟล์ที่เป็นอันตรายในเครื่องและเริ่มโจมตีแบบ Cross-Site Scripting เพื่อเข้าถึงไฟล์ส่วนตัวหรือคุกกี้ในเครื่อง

คุณควรป้องกันช่องโหว่นี้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้

  1. ตรวจสอบว่า WebView ไม่มีการตั้งค่าที่เป็นอันตราย
  2. ตรวจสอบว่า WebView ไม่สามารถโหลดไฟล์ในเครื่องหรือเรียกใช้ JavaScript
  3. ตรวจสอบว่า WebView ที่มีการตั้งค่าที่เป็นอันตรายไม่โหลดเนื้อหาเว็บที่ไม่น่าเชื่อถือ

1. การตรวจสอบว่า WebView ไม่มีการตั้งค่าที่เป็นอันตราย

อัปเดต android:targetSdkVersion ในไฟล์ Manifest ให้มีค่า 16 เป็นอย่างน้อยเพื่อใช้การตั้งค่าเริ่มต้นที่ปลอดภัยสำหรับ WebView มิเช่นนั้นให้เรียก setAllowFileAccessFromFileURLs(false) และ setAllowUniversalAccessFromFileURLs(false) เพื่อให้มั่นใจว่า WebView จะปลอดภัย

2. การตรวจสอบว่า WebView โหลดไฟล์ในเครื่องหรือเรียกใช้ JavaScript ไม่ได้

เรียกใช้ setAllowFileAccess(false) เพื่อป้องกันไม่ให้ WebView ที่มีการตั้งค่าที่เป็นอันตรายโหลดไฟล์ในเครื่อง หรือเรียกใช้ setJavaScriptEnabled(false) เพื่อป้องกันไม่ให้ WebView ที่มีการตั้งค่าที่เป็นอันตรายเรียกใช้โค้ด JavaScript

3. การตรวจสอบว่า WebView ที่มีการตั้งค่าที่เป็นอันตรายไม่โหลดเนื้อหาเว็บที่ไม่น่าเชื่อถือ

หาก WebView จำเป็นต้องเปิดใช้การตั้งค่าที่เป็นอันตรายเหล่านี้ คุณต้องตรวจสอบว่า WebView ไม่ได้โหลดเนื้อหาเว็บที่ไม่น่าเชื่อถือ รวมถึงเนื้อหาเว็บที่โหลดผ่าน HTTP คุณอาจตั้งค่า android:usesCleartextTraffic=false หรือกำหนดค่าความปลอดภัยเครือข่ายเพื่อไม่อนุญาตให้มีการรับส่งข้อมูล HTTP ในไฟล์ Manifest หรือจะตรวจสอบว่า WebView ที่มีการตั้งค่าที่เป็นอันตรายไม่ได้โหลด URL ที่มีสกีม HTTP ก็ได้เช่นกัน

นอกจากนี้คุณควรตรวจสอบด้วยว่า WebView ที่มีการตั้งค่าที่เป็นอันตรายไม่ได้โหลด URL ที่ได้รับจากแหล่งที่มาที่ไม่น่าเชื่อถือ

เราพร้อมช่วยเหลือคุณ

หากมีคำถามทางเทคนิคเกี่ยวกับช่องโหว่ คุณโพสต์ถามได้ที่ Stack Overflow และใช้แท็ก “android-security” หากต้องการคำชี้แจงเกี่ยวกับขั้นตอนที่ต้องดำเนินการเพื่อแก้ไขปัญหานี้ โปรดติดต่อทีมสนับสนุนนักพัฒนาซอฟต์แวร์

ข้อมูลนี้มีประโยชน์ไหม
เราจะปรับปรุงได้อย่างไร