บทนำ (Overview)
บทความนี้กล่าวถึงแอพพลิเคชั่นสำคัญ เช่น “Mobile Banking” หรือ แอพพลิเคชั่นอื่น ๆ ที่ต้องการความปลอดภัยไม่ให้จดจำหน้าล่าสุดใน “Recent App.” ซึ่งจะทำการ “Snapshot” หรือจดจำหน้าล่าสุดสุดไว้เป็นรูปภาพ ซึ่งอาจมีข้อมูลสำคัญ เช่น ยอดเงินปัจจุบัน ชื่อบัญชีผูใช้ หรืออื่น ๆ เป็นต้น
โดยมีวิธีการแก้ไขดังกล่าวคือการซ่อนหน้าให้เป็นสีเทาเวลาโปรแกรมอยู่ใน “Recent App.” แต่การตั้งค่าดังกล่าวก็ส่งผลให้โปรแกรมไม่สามารถ “Screen capture” ตามไปด้วย ส่วนวิธีการแก้ไขปัญหาดังกล่าวสามารถทำได้ดังต่อไปนี้
ขั้นตอน (Steps)
- โดยปกติแล้วถ้าเรากดปุุ่ม “Recent App” จะปรากฏหน้าจอดังรูป
- เราสามารถป้องกันได้โดยใช้ “Flag SECURE” ในส่วนของ “onCreate”
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); //หรือ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
- แต่จะต้องเรียกใช้งาน “WindowManager” ด้วยเพื่อสามารถเรียกใช้งาน “Flag SECURE” ได้
import android.view.WindowManager;
- เพราะฉะนั้นจะได้ตัวอย่างการใช้งานดังนี้
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); } }
- ทดสอบโปรแกรมจะพบว่าไม่พบหน้าจอแบบข้างต้นแล้ว กลายเป็นจอสีเทา ๆ แทน