ข้อมูลนี้มีไว้สำหรับนักพัฒนาที่แอปของตนเสี่ยงต่อการถูกโจมตีแบบ File-based Cross-Site Scripting
สิ่งที่เกิดขึ้น
แอปของคุณอย่างน้อย 1 แอปมีช่องโหว่ File-based Cross-Site Scripting ซึ่งต้องได้รับการแก้ไข โปรดดูประกาศใน Play Console เราอาจนำแอปที่มีช่องโหว่ด้านความปลอดภัยที่ไม่ได้รับการแก้ไขออกจาก Google Play หลังพ้นกำหนดเวลาที่แสดงใน Play Console
ต้องดำเนินการ
- ลงชื่อเข้าใช้ Play Console และไปที่ส่วนการแจ้งเตือนเพื่อดูแอปที่ได้รับผลกระทบและกำหนดเวลาในการแก้ไขปัญหาเหล่านี้
- อัปเดตแอปที่ได้รับผลกระทบและแก้ไขช่องโหว่
- ส่งเวอร์ชันที่อัปเดตของแอปที่ได้รับผลกระทบ
แอปของคุณจะได้รับการตรวจสอบอีกครั้งเมื่อมีการส่งใหม่ ขั้นตอนนี้อาจใช้เวลาหลายชั่วโมง หากแอปผ่านการตรวจสอบและเผยแพร่เรียบร้อยแล้ว แสดงว่าคุณไม่ต้องดำเนินการใดๆ เพิ่มเติมแล้ว หากแอปไม่ผ่านการตรวจสอบ แอปเวอร์ชันใหม่จะไม่ได้รับการเผยแพร่และคุณจะได้รับการแจ้งเตือนทางอีเมล
รายละเอียดเพิ่มเติม
WebView
ที่ WebSettings
ตั้งค่า setAllowFileAccessFromFileURLs
หรือ setAllowUniversalAccessFromFileURLs
ไว้เป็น "จริง" ต้องไม่โหลดเนื้อหาเว็บใดๆ ที่ไม่น่าเชื่อถือ รวมถึงเนื้อหาจากโดเมนที่เชื่อถือได้ซึ่งโหลดผ่าน HTTP เนื้อหาเว็บหรือเครือข่ายที่เป็นอันตรายอาจมีการแทรกสคริปต์เพื่อเปลี่ยนเส้นทาง WebView ไปยังไฟล์ที่เป็นอันตรายในเครื่องและเริ่มโจมตีแบบ Cross-Site Scripting เพื่อเข้าถึงไฟล์ส่วนตัวหรือคุกกี้ในเครื่อง
คุณควรป้องกันช่องโหว่นี้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- ตรวจสอบว่า WebView ไม่มีการตั้งค่าที่เป็นอันตราย
- ตรวจสอบว่า WebView ไม่สามารถโหลดไฟล์ในเครื่องหรือเรียกใช้ JavaScript
- ตรวจสอบว่า 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” หากต้องการคำชี้แจงเกี่ยวกับขั้นตอนที่ต้องดำเนินการเพื่อแก้ไขปัญหานี้ โปรดติดต่อทีมสนับสนุนนักพัฒนาซอฟต์แวร์