How to protect the sensitive Activity in the Recent App.

บทนำ (Overview)

บทความนี้กล่าวถึงแอพพลิเคชั่นสำคัญ เช่น “Mobile Banking” หรือ  แอพพลิเคชั่นอื่น ๆ ที่ต้องการความปลอดภัยไม่ให้จดจำหน้าล่าสุดใน “Recent App.” ซึ่งจะทำการ “Snapshot” หรือจดจำหน้าล่าสุดสุดไว้เป็นรูปภาพ ซึ่งอาจมีข้อมูลสำคัญ เช่น ยอดเงินปัจจุบัน ชื่อบัญชีผูใช้ หรืออื่น ๆ เป็นต้น

โดยมีวิธีการแก้ไขดังกล่าวคือการซ่อนหน้าให้เป็นสีเทาเวลาโปรแกรมอยู่ใน “Recent App.” แต่การตั้งค่าดังกล่าวก็ส่งผลให้โปรแกรมไม่สามารถ “Screen capture” ตามไปด้วย ส่วนวิธีการแก้ไขปัญหาดังกล่าวสามารถทำได้ดังต่อไปนี้

ขั้นตอน (Steps)

  1. โดยปกติแล้วถ้าเรากดปุุ่ม “Recent App” จะปรากฏหน้าจอดังรูป
  2. เราสามารถป้องกันได้โดยใช้ “Flag SECURE” ในส่วนของ “onCreate”
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
    
    //หรือ
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    
  3. แต่จะต้องเรียกใช้งาน  “WindowManager” ด้วยเพื่อสามารถเรียกใช้งาน “Flag SECURE” ได้
    import android.view.WindowManager;
    
  4. เพราะฉะนั้นจะได้ตัวอย่างการใช้งานดังนี้
    package com.example.wsunpachit.vulnerapp;
    import android.view.WindowManager;
    
    public class LoginActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
    
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
    
        }
    }
    
  5. ทดสอบโปรแกรมจะพบว่าไม่พบหน้าจอแบบข้างต้นแล้ว กลายเป็นจอสีเทา ๆ แทน

ใส่ความเห็น