ข้อมูลนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ของแอปที่มีช่องโหว่ในการแทรก SQL
สิ่งที่เกิดขึ้น
แอปของคุณอย่างน้อย 1 แอปมีช่องโหว่ในการแทรก SQL ที่ต้องแก้ไข โปรดดูประกาศใน Play Console เราอาจนำแอปที่มีช่องโหว่ด้านความปลอดภัยที่ไม่ได้รับการแก้ไขออกจาก Google Play หลังพ้นกำหนดเวลาที่แสดงใน Play Console
สิ่งที่ต้องดำเนินการ
- ลงชื่อเข้าใช้ Play Console และไปที่ส่วนการแจ้งเตือนเพื่อดูแอปที่ได้รับผลกระทบและกำหนดเวลาในการแก้ไขปัญหาเหล่านี้
- อัปเดตแอปที่ได้รับผลกระทบและแก้ไขช่องโหว่
- ส่งเวอร์ชันที่อัปเดตของแอปที่ได้รับผลกระทบ
แอปของคุณจะได้รับการตรวจสอบอีกครั้งเมื่อมีการส่งใหม่ ขั้นตอนนี้อาจใช้เวลาหลายชั่วโมง หากแอปผ่านการตรวจสอบและเผยแพร่เรียบร้อยแล้ว คุณไม่ต้องดำเนินการใดๆ เพิ่มเติม หากแอปไม่ผ่านการตรวจสอบจะไม่มีการเผยแพร่แอปเวอร์ชันใหม่และคุณจะได้รับการแจ้งเตือนทางอีเมล
รายละเอียดเพิ่มเติม
การติดตั้งใช้งาน query, update และ delete ใน ContentProviders ที่ส่งออกอาจมีช่องโหว่การแทรก SQL หากมีการส่งอินพุตที่ไม่ผ่านการตรวจสอบไปยังคำสั่ง SQL แอปที่เป็นอันตรายอาจส่งอินพุตที่สร้างขึ้นมาเพื่อเข้าถึงข้อมูลส่วนตัวหรือสร้างความเสียหายให้กับเนื้อหาในฐานข้อมูล คุณแก้ไขปัญหานี้ได้ด้วยวิธีต่อไปนี้
หากไม่จำเป็นต้องเปิดเผย ContentProvider ที่ได้รับผลกระทบแก่แอปอื่นๆ ให้ทำดังนี้
- คุณอาจแก้ไขแท็ก
<provider>ของContentProviderที่ได้รับผลกระทบในไฟล์ Manifest เพื่อตั้งค่าandroid:exported="false"ซึ่งจะป้องกันไม่ให้แอปอื่นๆ ส่ง Intent ไปยังContentProviderที่ได้รับผลกระทบ -
นอกจากนี้ คุณอาจตั้งค่าแอตทริบิวต์
android:permissionให้เป็นpermissionที่มีandroid:protectionLevel="signature"เพื่อป้องกันไม่ให้แอปที่สร้างขึ้นโดยนักพัฒนาคนอื่นๆ ส่ง Intent ไปยังContentProviderที่ได้รับผลกระทบ
หากจำเป็นต้องเปิดเผย ContentProvider ที่ได้รับผลกระทบแก่แอปอื่นๆ ให้ทำดังนี้
- คุณป้องกันการแทรก SQL เข้าไปใน
SQLiteDatabase.queryได้โดยใช้โหมดเข้มงวดที่มีแผนที่การคาดคะเน โหมดเข้มงวดช่วยป้องกันวลีการเลือกที่เป็นอันตราย และแผนที่การคาดคะเนช่วยป้องกันวลีการคาดคะเนที่เป็นอันตราย คุณต้องใช้ทั้ง 2 ฟีเจอร์เพื่อให้มั่นใจว่าคำค้นหามีความปลอดภัย - คุณป้องกันการแทรก SQL เข้าไปใน
SQLiteDatabase.updateและSQLiteDatabase.deleteได้โดยใช้วลีการเลือกที่ใช้"?"เป็นพารามิเตอร์แบบแทนที่ได้และอาร์เรย์ที่แยกต่างหากของอาร์กิวเมนต์การเลือก ไม่ควรสร้างวลีการเลือกจากอินพุตที่ไม่น่าเชื่อถือ
เราพร้อมช่วยเหลือคุณ
หากมีคำถามทางเทคนิคเกี่ยวกับช่องโหว่ คุณโพสต์ถามได้ที่ Stack Overflow และใช้แท็ก “android-security” หากต้องการคำชี้แจงเกี่ยวกับขั้นตอนที่ต้องดำเนินการเพื่อแก้ไขปัญหานี้ โปรดติดต่อทีมสนับสนุนนักพัฒนาซอฟต์แวร์