با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این سند روشهای نظارت بر فعالیتهای حساس، مانند ورود کاربران و خریدهای آنلاین را شرح میدهد.
FLAG_SECURE
FLAG_SECURE یک پرچم پنجره است که به اندروید میگوید اجازه اسکرینشات را ندهد یا نمای پنجره را روی یک نمایشگر غیرایمن (مانند ارسال محتوا) نمایش دهد. این برای برنامههایی مفید است که نیاز به محافظت از اطلاعات حساس دارند، مانند برنامههای بانکی یا مدیران رمز عبور. وقتی پنجرهای با FLAG_SECURE پرچمگذاری میشود، Android از گرفتن اسکرینشاتها جلوگیری میکند و از نمایش پنجره بر روی یک نمایشگر غیرایمن، مانند تلویزیون یا پروژکتور جلوگیری میکند. این کمک می کند تا از اطلاعاتی که در پنجره نمایش داده می شود از دسترسی افراد غیرمجاز محافظت شود.
چگونه این به کاهش تقلب کمک می کند
یک برنامه یا موجودیت مخرب ممکن است اسکرین شات های پس زمینه را بازیابی کند. وقتی وضعیت برنامه شما به پسزمینه تغییر میکند، میتوان از FLAG_SECURE استفاده کرد. وقتی اسکرین شات گرفته می شود، تصویر به دست آمده خالی است.
FLAG_SECURE همچنین به موارد استفاده اشتراکگذاری صفحه از راه دور کمک میکند. این همیشه یک برنامه مخرب نیست که اسکرین شات ها را بازیابی کند، برنامه های اشتراک گذاری صفحه نمایش قانونی نیز معمولاً در موقعیت های تقلبی استفاده می شوند.
پیاده سازی
برای نماهایی با اطلاعاتی که میخواهید محافظت شود، موارد زیر را اضافه کنید:
توجه به این نکته مهم است که این رویکرد در جلوگیری از حملات همپوشانی قابل اعتماد نیست. در برخی موارد به درستی پیشبینی نمیکند که ضبط صفحه فعال است، با این حال بیشتر موارد استفاده را پوشش میدهد. برای کاهش حملات همپوشانی، بخش بعدی درباره مجوزهای HIDE_OVERLAY_WINDOWS را بخوانید.
HIDE_OVERLAY_WINDOWS
HIDE_OVERLAY_WINDOWS مجوزی است که در Android 12 اضافه شده است که در آن برنامه شما میتواند از کشیدن همپوشانی برنامه روی آن انصراف دهد. در Android 12، ما کسب مجوز SYSTEM_ALERT_WINDOW را سختتر کردهایم، و اساساً به برنامه شما اجازه میدهیم تا پوششهای برنامههای شخص ثالث را مسدود کند.
چگونه این به کاهش تقلب کمک می کند
وقتی مجوز HIDE_OVERLAY_WINDOWS را فعال میکنید، از کشیدن همپوشانی برنامهها در بالای برنامه خودداری میکنید. این مجوز یک مکانیسم حفاظتی در برابر حملات شنل و خنجر ارائه می دهد.
پیاده سازی
برای فعال کردن این مجوز، HIDE_OVERLAY_WINDOWS را به مانیفست پروژه خود اضافه کنید.
بهترین شیوه ها
مانند هر مجوزی، باید به هر برنامه همپوشانی حداقل به همان اندازه که به هر برنامه دیگری در دستگاه اعتماد دارید اعتماد کنید. به عبارت دیگر، برنامه شما نباید به برنامه های دیگر اجازه دهد تا روی آن همپوشانی بکشند، مگر اینکه بدانید برنامه دیگر قابل اعتماد است. اجازه دادن به برنامه برای کشیدن روی سایر برنامهها میتواند خطرناک باشد زیرا میتواند گذرواژهها را بدزدد یا پیامها را بخواند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Secure sensitive activities\n\nThis document details ways to monitor sensitive activities, such as user logins\nand online purchases.\n\nFLAG_SECURE\n-----------\n\n`FLAG_SECURE` is a [Window flag](/reference/android/view/WindowManager.LayoutParams#FLAG_SECURE) that tells Android not to allow screenshots\nor to display the window view on a non-secure display (such as Casting the\nscreen). This is useful for applications that need to protect sensitive\ninformation, like banking apps or password managers. When a window is flagged\nwith `FLAG_SECURE`, Android prevents screenshots from being taken and prevents\nthe window from being displayed on a non-secure display, such as a TV or\nprojector. This helps to protect the information that is being displayed in the\nwindow from being accessed by unauthorized people.\n\n### How this helps mitigate fraud\n\nA malicious app or entity might retrieve background screenshots. When the state\nof your app changes to the background, `FLAG_SECURE` can be used. When the\nscreenshot is taken the resulting image is blank.\n\n`FLAG_SECURE` also helps with remote screen sharing use cases. It isn't always a\nmalicious app that will retrieve screenshots, legitimate screen sharing apps are\nalso commonly found used in fraudulent situations.\n\n### Implementation\n\nFor views with the information you want protected, add the following: \n\n### Kotlin\n\n```kotlin\nwindow?.setFlags(\n WindowManager.LayoutParams.FLAG_SECURE,\n WindowManager.LayoutParams.FLAG_SECURE\n)\n```\n\n### Java\n\n```java\nwindow.setFlags(\n WindowManager.LayoutParams.FLAG_SECURE,\n WindowManager.LayoutParams.FLAG_SECURE\n);\n```\n\n### Best practices\n\nIt is important to note that this approach isn't reliable in preventing overlay\nattacks. In some cases it does not correctly predict if screen recording is\nactive, however it does cover most use cases. To mitigate overlay attacks, read\nthe next section about `HIDE_OVERLAY_WINDOWS` permissions.\n| **Note:** For Android 11 (API 30) and lower `FLAG_SECURE` is able to help around 70% of the devices reliably. This is because on certain devices keyboard taps can be recorded.\n\nHIDE_OVERLAY_WINDOWS\n--------------------\n\n`HIDE_OVERLAY_WINDOWS` is a permission added in Android 12 where your app can\nopt-out of having application overlays drawn over it. In Android 12 we have made\nit harder to acquire the [`SYSTEM_ALERT_WINDOW`](/reference/android/Manifest.permission#SYSTEM_ALERT_WINDOW) permission, essentially\nallowing your app to block overlays from third-party apps.\n\n### How this helps mitigate fraud\n\nWhen you enable the `HIDE_OVERLAY_WINDOWS` permission you are opting out of\nhaving application overlays drawn on top of your app. This permission provides a\nprotection mechanism against [cloak and dagger](https://cloak-and-dagger.org/) attacks.\n\n### Implementation\n\nTo enable this permission, add [`HIDE_OVERLAY_WINDOWS`](/reference/android/Manifest.permission#HIDE_OVERLAY_WINDOWS) to your project's\nmanifest.\n\n### Best practices\n\nAs with any permission, you should trust any overlay app at least as much as you\ntrust any other app on the device. In other words, your app shouldn't allow\nother apps to draw overlays over it unless you know the other app is\ntrustworthy. Allowing an app to draw over other apps can be dangerous because it\ncan steal passwords or read messages."]]