วิธีแก้ไขการแจ้งเตือนของเครื่องจัดการข้อผิดพลาด WebView SSL ในแอป

บทความนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่มีแอปที่มีการใช้งานเครื่องจัดการ WebViewClient.onReceivedSslError ที่ไม่ปลอดภัย

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

แอปของคุณอย่างน้อย 1 แอปมีการใช้งานเครื่องจัดการ onReceivedSslError ที่ไม่ปลอดภัย ซึ่งทำให้แอปเสี่ยงต่อการถูกโจมตีโดยบุคคลที่อยู่ระหว่างกลาง ผู้โจมตีอาจเปลี่ยนแปลงเนื้อหาของ WebView ที่ได้รับผลกระทบ อ่านข้อมูลที่ส่ง (เช่น ข้อมูลเข้าสู่ระบบ) และเรียกใช้โค้ดในแอปโดยใช้ JavaScript โปรดดูประกาศใน Play Console หลังพ้นกำหนดเวลาที่แสดงใน Play Console แล้ว เราอาจนำแอปที่มีช่องโหว่ด้านความปลอดภัยที่ไม่ได้รับการแก้ไขออกจาก Google Play

สิ่งที่ต้องดำเนินการ​

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

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

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

  1. ในการแก้ไขปัญหานี้ โปรดอัปเดตโค้ดของแอปให้เรียกใช้ SslErrorHandler.proceed() ทุกครั้งที่ใบรับรองที่เซิร์ฟเวอร์แสดงตรงตามที่คุณคาดไว้ และเรียกใช้ SslErrorHandler.cancel() เมื่อใบรับรองไม่ตรงตามความคาดหวังของคุณ โปรดคำนึงถึงประเด็นต่อไปนี้ขณะตรวจสอบความถูกต้องของใบรับรอง
    1. แอปอาจถูกแจ้งว่าไม่เหมาะสมหากไม่มีการตรวจสอบความถูกต้องของใบรับรองอย่างเพียงพอ เช่น การตรวจสอบเพียงค่าที่ส่งกลับมาจาก getPrimaryError นั้นไม่เพียงพอที่จะพิสูจน์ความถูกต้องของใบรับรอง

    2. คุณไม่ควรเพิกเฉยต่อข้อผิดพลาด SSL ส่วนใหญ่ที่ส่งกลับมาจาก SslError.getPrimaryError โปรดทราบว่า getPrimaryError จะส่งกลับข้อผิดพลาดระดับรุนแรงส่วนใหญ่ในรูปแบบชุดข้อผิดพลาด ดังนั้น หาก getPrimaryError() != SSL_UNTRUSTED เป็นจริง การเชื่อมต่ออาจยังมีข้อผิดพลาด SSL_UNTRUSTED อยู่ในชุดข้อผิดพลาด

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องจัดการข้อผิดพลาด SSL โปรดดูเอกสารประกอบของเราในศูนย์ช่วยเหลือนักพัฒนาซอฟต์แวร์ Android คุณโพสต์คำถามทางเทคนิคอื่นๆ ได้ที่ https://www.stackoverflow.com/questions และใช้แท็ก “android-security” และ “SslErrorHandler”

แม้ว่าปัญหาเฉพาะเหล่านี้อาจไม่ส่งผลกระทบกับทุกแอปที่ใช้ WebView SSL แต่คุณควรอัปเดตแพตช์ความปลอดภัยทั้งหมดอยู่เสมอ แอปที่มีช่องโหว่ซึ่งทำให้ผู้ใช้เสี่ยงต่อการถูกโจมตีอาจได้รับการพิจารณาว่าเป็นผลิตภัณฑ์อันตรายที่ละเมิดนโยบายเนื้อหาและหัวข้อ 4.4 ของข้อตกลงการจัดจำหน่ายของนักพัฒนาซอฟต์แวร์

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

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

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