مجوزهای برنامه با محافظت از دسترسی به موارد زیر به حمایت از حریم خصوصی کاربر کمک می کند:
- داده های محدود شده ، مانند وضعیت سیستم و اطلاعات تماس کاربران
- اقدامات محدود شده ، مانند اتصال به دستگاه جفت شده و ضبط صدا
این صفحه یک نمای کلی از نحوه عملکرد مجوزهای Android، از جمله یک گردش کار سطح بالا برای استفاده از مجوزها، شرح انواع مختلف مجوزها، و برخی از بهترین شیوه ها برای استفاده از مجوزها در برنامه شما ارائه می دهد. صفحات دیگر توضیح میدهند که چگونه درخواستهای برنامه خود را برای مجوزها به حداقل برسانید ، مجوزها را اعلام کنید ، مجوزهای زمان اجرا را درخواست کنید ، و نحوه تعامل سایر برنامهها با اجزای برنامه را محدود کنید .
برای مشاهده لیست کامل مجوزهای برنامه Android، از صفحه مرجع API مجوزها دیدن کنید.
برای مشاهده برخی از برنامههای نمونه که گردش کار مجوزها را نشان میدهند، از مخزن نمونه مجوزهای Android در GitHub دیدن کنید.
گردش کار برای استفاده از مجوزها
اگر برنامه شما عملکردی ارائه می دهد که ممکن است نیاز به دسترسی به داده های محدود یا اقدامات محدود داشته باشد، تعیین کنید که آیا می توانید اطلاعات را دریافت کنید یا اقدامات را بدون نیاز به اعلام مجوز انجام دهید. شما می توانید بسیاری از موارد استفاده را در برنامه خود انجام دهید، مانند گرفتن عکس، توقف پخش رسانه، و نمایش تبلیغات مرتبط، بدون نیاز به اعلام هیچ مجوزی.
اگر تصمیم دارید که برنامه شما باید به دادههای محدود دسترسی داشته باشد یا اقدامات محدود شده را برای انجام یک مورد استفاده انجام دهد، مجوزهای مناسب را اعلام کنید. برخی از مجوزها، که به عنوان مجوزهای زمان نصب شناخته می شوند، به طور خودکار با نصب برنامه شما اعطا می شوند. سایر مجوزها، که به عنوان مجوزهای زمان اجرا شناخته می شوند، به برنامه شما نیاز دارند که یک قدم فراتر رفته و در زمان اجرا مجوز درخواست کند.
شکل 1 گردش کار برای استفاده از مجوزهای برنامه را نشان می دهد:
انواع مجوزها
اندروید مجوزها را به انواع مختلفی از جمله مجوزهای زمان نصب، مجوزهای زمان اجرا و مجوزهای ویژه دسته بندی می کند. نوع هر مجوز، دامنه دادههای محدود شدهای را که برنامه شما میتواند به آنها دسترسی داشته باشد، و دامنه اقدامات محدودی را که برنامه شما میتواند انجام دهد، نشان میدهد، زمانی که سیستم به برنامه شما این مجوز را میدهد. سطح حفاظت برای هر مجوز بر اساس نوع آن است و در صفحه مرجع API مجوزها نشان داده شده است.
مجوزهای زمان نصب
مجوزهای زمان نصب به برنامه شما دسترسی محدودی به داده های محدود شده می دهد یا به برنامه شما اجازه می دهد اقدامات محدودی را انجام دهد که حداقل بر سیستم یا سایر برنامه ها تأثیر می گذارد. هنگامی که مجوزهای زمان نصب را در برنامه خود اعلام می کنید، یک فروشگاه برنامه زمانی که صفحه جزئیات برنامه را مشاهده می کند، همانطور که در شکل 2 نشان داده شده است، یک اعلان مجوز زمان نصب به کاربر ارائه می دهد. سیستم به طور خودکار مجوزها را هنگام نصب کاربر به برنامه شما اعطا می کند. برنامه شما
Android شامل چندین نوع زیرمجموعه از مجوزهای زمان نصب، از جمله مجوزهای عادی و مجوزهای امضا است.
مجوزهای عادی
این مجوزها امکان دسترسی به داده ها و اقداماتی را فراهم می کند که فراتر از جعبه ایمنی برنامه شما است، اما خطر بسیار کمی برای حریم خصوصی کاربر و عملکرد سایر برنامه ها ایجاد می کند.
سیستم سطح حفاظت normal
را به مجوزهای عادی اختصاص می دهد.
مجوزهای امضا
سیستم تنها زمانی به یک برنامه اجازه امضا می دهد که برنامه با همان گواهینامه برنامه یا سیستم عاملی که مجوز را تعریف می کند امضا شده باشد.
برنامههایی که سرویسهای ممتاز را پیادهسازی میکنند، مانند سرویسهای تکمیل خودکار یا VPN، از مجوزهای امضا نیز استفاده میکنند. این برنامهها به مجوزهای امضای اتصال سرویس نیاز دارند تا فقط سیستم بتواند به سرویسها متصل شود.
سیستم سطح حفاظت signature
را به مجوزهای امضا اختصاص می دهد.
مجوزهای زمان اجرا
مجوزهای زمان اجرا، که به عنوان مجوزهای خطرناک نیز شناخته میشوند، به برنامه شما دسترسی بیشتری به دادههای محدود شده میدهند یا به برنامه شما اجازه میدهند تا اقدامات محدودی را انجام دهد که بر سیستم و سایر برنامهها تأثیر بیشتری میگذارد. بنابراین، قبل از اینکه بتوانید به داده های محدود شده دسترسی داشته باشید یا اقدامات محدود شده را انجام دهید، باید مجوزهای زمان اجرا را در برنامه خود درخواست کنید . فرض نکنید که این مجوزها قبلاً اعطا شده اند - آنها را بررسی کنید و در صورت نیاز، قبل از هر دسترسی آنها را درخواست کنید.
هنگامی که برنامه شما مجوز زمان اجرا را درخواست می کند، سیستم درخواست مجوز زمان اجرا را ارائه می دهد، همانطور که در شکل 3 نشان داده شده است.
بسیاری از مجوزهای زمان اجرا به دادههای کاربر خصوصی دسترسی دارند، نوع خاصی از دادههای محدود شده که شامل اطلاعات بالقوه حساس است. نمونه هایی از داده های خصوصی کاربر شامل مکان و اطلاعات تماس است.
میکروفون و دوربین دسترسی به اطلاعات حساس را فراهم می کنند. بنابراین، سیستم به شما کمک می کند توضیح دهید که چرا برنامه شما به این اطلاعات دسترسی دارد .
سیستم سطح حفاظت dangerous
را به مجوزهای زمان اجرا اختصاص می دهد.
مجوزهای ویژه
مجوزهای ویژه مربوط به عملیات برنامه خاص است. فقط پلتفرم و OEM ها می توانند مجوزهای ویژه را تعریف کنند. علاوه بر این، پلتفرم و OEM ها معمولاً زمانی که می خواهند از دسترسی به اقدامات بسیار قدرتمند محافظت کنند، مانند طراحی روی برنامه های دیگر، مجوزهای ویژه ای را تعریف می کنند.
صفحه دسترسی به برنامه ویژه در تنظیمات سیستم شامل مجموعه ای از عملیات قابل تغییر توسط کاربر است. بسیاری از این عملیات به عنوان مجوزهای ویژه اجرا می شوند.
درباره نحوه درخواست مجوزهای ویژه بیشتر بیاموزید.
سیستم سطح حفاظت appop
را به مجوزهای ویژه اختصاص می دهد.
گروه های مجوز
مجوزها می توانند به گروه های مجوز تعلق داشته باشند. گروه های مجوز شامل مجموعه ای از مجوزهای منطقی مرتبط هستند. برای مثال، مجوزهای ارسال و دریافت پیامک ممکن است متعلق به یک گروه باشد، زیرا هر دو به تعامل برنامه با پیامک مربوط می شوند.
گروههای مجوز به سیستم کمک میکنند تا زمانی که یک برنامه مجوزهای مرتبط را درخواست میکند، تعداد گفتگوهای سیستمی را که به کاربر ارائه میشوند به حداقل برساند. هنگامی که یک کاربر برای اعطای مجوز برای یک برنامه کاربردی ارائه می شود، مجوزهای متعلق به همان گروه در همان رابط ارائه می شوند. با این حال، مجوزها می توانند گروه ها را بدون اطلاع قبلی تغییر دهند، بنابراین فرض نکنید که یک مجوز خاص با مجوز دیگری گروه بندی شده است.
بهترین شیوه ها
مجوزهای برنامه مبتنی بر ویژگیهای امنیتی سیستم است و به Android کمک میکند از اهداف زیر مرتبط با حریم خصوصی کاربر پشتیبانی کند:
- کنترل: کاربر روی داده هایی که با برنامه ها به اشتراک می گذارد کنترل دارد.
- شفافیت: کاربر می داند که یک برنامه از چه داده هایی استفاده می کند و چرا برنامه به این داده ها دسترسی دارد.
- به حداقل رساندن داده ها: یک برنامه فقط به داده هایی دسترسی دارد که برای یک کار یا عملکرد خاص مورد نیاز است که کاربر فراخوانی می کند.
این بخش مجموعهای از بهترین روشهای اصلی را برای استفاده مؤثر از مجوزها در برنامه شما ارائه میکند. برای جزئیات بیشتر در مورد نحوه کار با مجوزها در Android، از صفحه بهترین اقدامات مجوزهای برنامه دیدن کنید.
حداقل تعداد مجوز را درخواست کنید
هنگامی که کاربر یک اقدام خاص را در برنامه شما درخواست می کند، برنامه شما باید فقط مجوزهایی را که برای تکمیل آن اقدام نیاز دارد درخواست کند. بسته به نحوه استفاده شما از مجوزها، ممکن است یک راه جایگزین برای انجام موارد استفاده برنامه شما بدون تکیه بر دسترسی به اطلاعات حساس وجود داشته باشد.
مجوزهای زمان اجرا را با اقدامات خاص مرتبط کنید
مجوزها را تا حد امکان در جریان موارد استفاده برنامه خود درخواست کنید. برای مثال، اگر برنامه شما به کاربران اجازه میدهد پیامهای صوتی را برای دیگران ارسال کنند، صبر کنید تا کاربر به صفحه پیامرسانی پیمایش کند و دکمه ارسال پیام صوتی را فشار دهد. پس از اینکه کاربر دکمه را فشار داد، برنامه شما میتواند درخواست دسترسی به میکروفون کند.
وابستگی های برنامه خود را در نظر بگیرید
هنگامی که یک کتابخانه را شامل میشوید، الزامات مجوز آن را نیز به ارث میبرید. از مجوزهایی که هر وابستگی نیاز دارد و آن مجوزها برای چه مواردی استفاده می شود آگاه باشید.
شفاف باشید
هنگامی که درخواست مجوز میکنید، در مورد مواردی که به آنها دسترسی دارید، چرا، و در صورت رد شدن مجوزها بر چه ویژگیهایی تأثیر میگذارند، شفاف باشید تا کاربران بتوانند آگاهانه تصمیم بگیرند.
دسترسی های سیستمی را صریح کنید
هنگامی که به دادهها یا سختافزار حساس مانند دوربین یا میکروفون دسترسی دارید، در صورتی که سیستم قبلاً این نشانگرها را ارائه نکرده باشد، یک علامت پیوسته در برنامه خود ارائه دهید. این یادآوری به کاربران کمک میکند بفهمند برنامه شما دقیقاً چه زمانی به دادههای محدود شده دسترسی دارد یا اقدامات محدود شده را انجام میدهد.
مجوزها در اجزای سیستم
مجوزها فقط برای درخواست عملکرد سیستم نیستند. همانطور که در صفحه درباره نحوه محدود کردن تعامل با برنامههای دیگر توضیح داده شده است، اجزای سیستم برنامه شما میتوانند برنامههای دیگر را که میتوانند با برنامه شما تعامل داشته باشند، محدود کنند.
،مجوزهای برنامه با محافظت از دسترسی به موارد زیر به حمایت از حریم خصوصی کاربر کمک می کند:
- داده های محدود شده ، مانند وضعیت سیستم و اطلاعات تماس کاربران
- اقدامات محدود شده ، مانند اتصال به دستگاه جفت شده و ضبط صدا
این صفحه یک نمای کلی از نحوه عملکرد مجوزهای Android، از جمله یک گردش کار سطح بالا برای استفاده از مجوزها، شرح انواع مختلف مجوزها، و برخی از بهترین شیوه ها برای استفاده از مجوزها در برنامه شما ارائه می دهد. صفحات دیگر توضیح میدهند که چگونه درخواستهای برنامه خود را برای مجوزها به حداقل برسانید ، مجوزها را اعلام کنید ، مجوزهای زمان اجرا را درخواست کنید ، و نحوه تعامل سایر برنامهها با اجزای برنامه را محدود کنید .
برای مشاهده لیست کامل مجوزهای برنامه Android، از صفحه مرجع API مجوزها دیدن کنید.
برای مشاهده برخی از برنامههای نمونه که گردش کار مجوزها را نشان میدهند، از مخزن نمونه مجوزهای Android در GitHub دیدن کنید.
گردش کار برای استفاده از مجوزها
اگر برنامه شما عملکردی ارائه می دهد که ممکن است نیاز به دسترسی به داده های محدود یا اقدامات محدود داشته باشد، تعیین کنید که آیا می توانید اطلاعات را دریافت کنید یا اقدامات را بدون نیاز به اعلام مجوز انجام دهید. شما می توانید بسیاری از موارد استفاده را در برنامه خود انجام دهید، مانند گرفتن عکس، توقف پخش رسانه، و نمایش تبلیغات مرتبط، بدون نیاز به اعلام هیچ مجوزی.
اگر تصمیم دارید که برنامه شما باید به دادههای محدود دسترسی داشته باشد یا اقدامات محدود شده را برای انجام یک مورد استفاده انجام دهد، مجوزهای مناسب را اعلام کنید. برخی از مجوزها، که به عنوان مجوزهای زمان نصب شناخته می شوند، به طور خودکار با نصب برنامه شما اعطا می شوند. سایر مجوزها، که به عنوان مجوزهای زمان اجرا شناخته می شوند، به برنامه شما نیاز دارند که یک قدم فراتر رفته و در زمان اجرا مجوز درخواست کند.
شکل 1 گردش کار برای استفاده از مجوزهای برنامه را نشان می دهد:
انواع مجوزها
اندروید مجوزها را به انواع مختلفی از جمله مجوزهای زمان نصب، مجوزهای زمان اجرا و مجوزهای ویژه دسته بندی می کند. نوع هر مجوز، دامنه دادههای محدود شدهای را که برنامه شما میتواند به آنها دسترسی داشته باشد، و دامنه اقدامات محدودی را که برنامه شما میتواند انجام دهد، نشان میدهد، زمانی که سیستم به برنامه شما این مجوز را میدهد. سطح حفاظت برای هر مجوز بر اساس نوع آن است و در صفحه مرجع API مجوزها نشان داده شده است.
مجوزهای زمان نصب
مجوزهای زمان نصب به برنامه شما دسترسی محدودی به داده های محدود شده می دهد یا به برنامه شما اجازه می دهد اقدامات محدودی را انجام دهد که حداقل بر سیستم یا سایر برنامه ها تأثیر می گذارد. هنگامی که مجوزهای زمان نصب را در برنامه خود اعلام می کنید، یک فروشگاه برنامه زمانی که صفحه جزئیات برنامه را مشاهده می کند، همانطور که در شکل 2 نشان داده شده است، یک اعلان مجوز زمان نصب به کاربر ارائه می دهد. سیستم به طور خودکار مجوزها را هنگام نصب کاربر به برنامه شما اعطا می کند. برنامه شما
Android شامل چندین نوع زیرمجموعه از مجوزهای زمان نصب، از جمله مجوزهای عادی و مجوزهای امضا است.
مجوزهای عادی
این مجوزها امکان دسترسی به داده ها و اقداماتی را فراهم می کند که فراتر از جعبه ایمنی برنامه شما است، اما خطر بسیار کمی برای حریم خصوصی کاربر و عملکرد سایر برنامه ها ایجاد می کند.
سیستم سطح حفاظت normal
را به مجوزهای عادی اختصاص می دهد.
مجوزهای امضا
سیستم تنها زمانی به یک برنامه اجازه امضا می دهد که برنامه با همان گواهینامه برنامه یا سیستم عاملی که مجوز را تعریف می کند امضا شده باشد.
برنامههایی که سرویسهای ممتاز را پیادهسازی میکنند، مانند سرویسهای تکمیل خودکار یا VPN، از مجوزهای امضا نیز استفاده میکنند. این برنامهها به مجوزهای امضای اتصال سرویس نیاز دارند تا فقط سیستم بتواند به سرویسها متصل شود.
سیستم سطح حفاظت signature
را به مجوزهای امضا اختصاص می دهد.
مجوزهای زمان اجرا
مجوزهای زمان اجرا، که به عنوان مجوزهای خطرناک نیز شناخته میشوند، به برنامه شما دسترسی بیشتری به دادههای محدود شده میدهند یا به برنامه شما اجازه میدهند تا اقدامات محدودی را انجام دهد که بر سیستم و سایر برنامهها تأثیر بیشتری میگذارد. بنابراین، قبل از اینکه بتوانید به داده های محدود شده دسترسی داشته باشید یا اقدامات محدود شده را انجام دهید، باید مجوزهای زمان اجرا را در برنامه خود درخواست کنید . فرض نکنید که این مجوزها قبلاً اعطا شده اند - آنها را بررسی کنید و در صورت نیاز، قبل از هر دسترسی آنها را درخواست کنید.
هنگامی که برنامه شما مجوز زمان اجرا را درخواست می کند، سیستم درخواست مجوز زمان اجرا را ارائه می دهد، همانطور که در شکل 3 نشان داده شده است.
بسیاری از مجوزهای زمان اجرا به دادههای کاربر خصوصی دسترسی دارند، نوع خاصی از دادههای محدود شده که شامل اطلاعات بالقوه حساس است. نمونه هایی از داده های خصوصی کاربر شامل مکان و اطلاعات تماس است.
میکروفون و دوربین دسترسی به اطلاعات حساس را فراهم می کنند. بنابراین، سیستم به شما کمک می کند توضیح دهید که چرا برنامه شما به این اطلاعات دسترسی دارد .
سیستم سطح حفاظت dangerous
را به مجوزهای زمان اجرا اختصاص می دهد.
مجوزهای ویژه
مجوزهای ویژه مربوط به عملیات برنامه خاص است. فقط پلتفرم و OEM ها می توانند مجوزهای ویژه را تعریف کنند. علاوه بر این، پلتفرم و OEM ها معمولاً زمانی که می خواهند از دسترسی به اقدامات بسیار قدرتمند محافظت کنند، مانند طراحی روی برنامه های دیگر، مجوزهای ویژه ای را تعریف می کنند.
صفحه دسترسی به برنامه ویژه در تنظیمات سیستم شامل مجموعه ای از عملیات قابل تغییر توسط کاربر است. بسیاری از این عملیات به عنوان مجوزهای ویژه اجرا می شوند.
درباره نحوه درخواست مجوزهای ویژه بیشتر بیاموزید.
سیستم سطح حفاظت appop
را به مجوزهای ویژه اختصاص می دهد.
گروه های مجوز
مجوزها می توانند به گروه های مجوز تعلق داشته باشند. گروه های مجوز شامل مجموعه ای از مجوزهای منطقی مرتبط هستند. برای مثال، مجوزهای ارسال و دریافت پیامک ممکن است متعلق به یک گروه باشد، زیرا هر دو به تعامل برنامه با پیامک مربوط می شوند.
گروههای مجوز به سیستم کمک میکنند تا زمانی که یک برنامه مجوزهای مرتبط را درخواست میکند، تعداد گفتگوهای سیستمی را که به کاربر ارائه میشوند به حداقل برساند. هنگامی که یک کاربر برای اعطای مجوز برای یک برنامه کاربردی ارائه می شود، مجوزهای متعلق به همان گروه در همان رابط ارائه می شوند. با این حال، مجوزها می توانند گروه ها را بدون اطلاع قبلی تغییر دهند، بنابراین فرض نکنید که یک مجوز خاص با مجوز دیگری گروه بندی شده است.
بهترین شیوه ها
مجوزهای برنامه مبتنی بر ویژگیهای امنیتی سیستم است و به Android کمک میکند از اهداف زیر مرتبط با حریم خصوصی کاربر پشتیبانی کند:
- کنترل: کاربر روی داده هایی که با برنامه ها به اشتراک می گذارد کنترل دارد.
- شفافیت: کاربر می داند که یک برنامه از چه داده هایی استفاده می کند و چرا برنامه به این داده ها دسترسی دارد.
- به حداقل رساندن داده ها: یک برنامه فقط به داده هایی دسترسی دارد که برای یک کار یا عملکرد خاص مورد نیاز است که کاربر فراخوانی می کند.
این بخش مجموعهای از بهترین روشهای اصلی را برای استفاده مؤثر از مجوزها در برنامه شما ارائه میکند. برای جزئیات بیشتر در مورد نحوه کار با مجوزها در Android، از صفحه بهترین اقدامات مجوزهای برنامه دیدن کنید.
حداقل تعداد مجوز را درخواست کنید
هنگامی که کاربر یک اقدام خاص را در برنامه شما درخواست می کند، برنامه شما باید فقط مجوزهایی را که برای تکمیل آن اقدام نیاز دارد درخواست کند. بسته به نحوه استفاده شما از مجوزها، ممکن است یک راه جایگزین برای انجام موارد استفاده برنامه شما بدون تکیه بر دسترسی به اطلاعات حساس وجود داشته باشد.
مجوزهای زمان اجرا را با اقدامات خاص مرتبط کنید
مجوزها را تا حد امکان در جریان موارد استفاده برنامه خود درخواست کنید. برای مثال، اگر برنامه شما به کاربران اجازه میدهد پیامهای صوتی را برای دیگران ارسال کنند، صبر کنید تا کاربر به صفحه پیامرسانی پیمایش کند و دکمه ارسال پیام صوتی را فشار دهد. پس از اینکه کاربر دکمه را فشار داد، برنامه شما میتواند درخواست دسترسی به میکروفون کند.
وابستگی های برنامه خود را در نظر بگیرید
هنگامی که یک کتابخانه را شامل میشوید، الزامات مجوز آن را نیز به ارث میبرید. از مجوزهایی که هر وابستگی نیاز دارد و آن مجوزها برای چه مواردی استفاده می شود آگاه باشید.
شفاف باشید
هنگامی که درخواست مجوز میکنید، در مورد مواردی که به آنها دسترسی دارید، چرا، و در صورت رد شدن مجوزها بر چه ویژگیهایی تأثیر میگذارند، شفاف باشید تا کاربران بتوانند آگاهانه تصمیم بگیرند.
دسترسی های سیستمی را صریح کنید
هنگامی که به دادهها یا سختافزار حساس مانند دوربین یا میکروفون دسترسی دارید، در صورتی که سیستم قبلاً این نشانگرها را ارائه نکرده باشد، یک علامت پیوسته در برنامه خود ارائه دهید. این یادآوری به کاربران کمک میکند بفهمند برنامه شما دقیقاً چه زمانی به دادههای محدود شده دسترسی دارد یا اقدامات محدود شده را انجام میدهد.
مجوزها در اجزای سیستم
مجوزها فقط برای درخواست عملکرد سیستم نیستند. همانطور که در صفحه درباره نحوه محدود کردن تعامل با برنامههای دیگر توضیح داده شده است، اجزای سیستم برنامه شما میتوانند برنامههای دیگر را که میتوانند با برنامه شما تعامل داشته باشند، محدود کنند.
،مجوزهای برنامه با محافظت از دسترسی به موارد زیر به حمایت از حریم خصوصی کاربر کمک می کند:
- داده های محدود شده ، مانند وضعیت سیستم و اطلاعات تماس کاربران
- اقدامات محدود شده ، مانند اتصال به دستگاه جفت شده و ضبط صدا
این صفحه یک نمای کلی از نحوه عملکرد مجوزهای Android، از جمله یک گردش کار سطح بالا برای استفاده از مجوزها، شرح انواع مختلف مجوزها، و برخی از بهترین شیوه ها برای استفاده از مجوزها در برنامه شما ارائه می دهد. صفحات دیگر توضیح میدهند که چگونه درخواستهای برنامه خود را برای مجوزها به حداقل برسانید ، مجوزها را اعلام کنید ، مجوزهای زمان اجرا را درخواست کنید ، و نحوه تعامل سایر برنامهها با اجزای برنامه را محدود کنید .
برای مشاهده لیست کامل مجوزهای برنامه Android، از صفحه مرجع API مجوزها دیدن کنید.
برای مشاهده برخی از برنامههای نمونه که گردش کار مجوزها را نشان میدهند، از مخزن نمونه مجوزهای Android در GitHub دیدن کنید.
گردش کار برای استفاده از مجوزها
اگر برنامه شما عملکردی ارائه می دهد که ممکن است نیاز به دسترسی به داده های محدود یا اقدامات محدود داشته باشد، تعیین کنید که آیا می توانید اطلاعات را دریافت کنید یا اقدامات را بدون نیاز به اعلام مجوز انجام دهید. شما می توانید بسیاری از موارد استفاده را در برنامه خود انجام دهید، مانند گرفتن عکس، توقف پخش رسانه، و نمایش تبلیغات مرتبط، بدون نیاز به اعلام هیچ مجوزی.
اگر تصمیم دارید که برنامه شما باید به دادههای محدود دسترسی داشته باشد یا اقدامات محدود شده را برای انجام یک مورد استفاده انجام دهد، مجوزهای مناسب را اعلام کنید. برخی از مجوزها، که به عنوان مجوزهای زمان نصب شناخته می شوند، به طور خودکار با نصب برنامه شما اعطا می شوند. سایر مجوزها، که به عنوان مجوزهای زمان اجرا شناخته می شوند، به برنامه شما نیاز دارند که یک قدم فراتر رفته و در زمان اجرا مجوز درخواست کند.
شکل 1 گردش کار برای استفاده از مجوزهای برنامه را نشان می دهد:
انواع مجوزها
اندروید مجوزها را به انواع مختلفی از جمله مجوزهای زمان نصب، مجوزهای زمان اجرا و مجوزهای ویژه دسته بندی می کند. نوع هر مجوز، دامنه دادههای محدود شدهای را که برنامه شما میتواند به آنها دسترسی داشته باشد، و دامنه اقدامات محدودی را که برنامه شما میتواند انجام دهد، نشان میدهد، زمانی که سیستم به برنامه شما این مجوز را میدهد. سطح حفاظت برای هر مجوز بر اساس نوع آن است و در صفحه مرجع API مجوزها نشان داده شده است.
مجوزهای زمان نصب
مجوزهای زمان نصب به برنامه شما دسترسی محدودی به داده های محدود شده می دهد یا به برنامه شما اجازه می دهد اقدامات محدودی را انجام دهد که حداقل بر سیستم یا سایر برنامه ها تأثیر می گذارد. هنگامی که مجوزهای زمان نصب را در برنامه خود اعلام می کنید، یک فروشگاه برنامه زمانی که صفحه جزئیات برنامه را مشاهده می کند، همانطور که در شکل 2 نشان داده شده است، یک اعلان مجوز زمان نصب به کاربر ارائه می دهد. سیستم به طور خودکار مجوزها را هنگام نصب کاربر به برنامه شما اعطا می کند. برنامه شما
Android شامل چندین نوع زیرمجموعه از مجوزهای زمان نصب، از جمله مجوزهای عادی و مجوزهای امضا است.
مجوزهای عادی
این مجوزها امکان دسترسی به داده ها و اقداماتی را فراهم می کند که فراتر از جعبه ایمنی برنامه شما است، اما خطر بسیار کمی برای حریم خصوصی کاربر و عملکرد سایر برنامه ها ایجاد می کند.
سیستم سطح حفاظت normal
را به مجوزهای عادی اختصاص می دهد.
مجوزهای امضا
سیستم تنها زمانی به یک برنامه اجازه امضا می دهد که برنامه با همان گواهینامه برنامه یا سیستم عاملی که مجوز را تعریف می کند امضا شده باشد.
برنامههایی که سرویسهای ممتاز را اجرا میکنند، مانند سرویسهای تکمیل خودکار یا VPN، از مجوزهای امضا نیز استفاده میکنند. این برنامهها به مجوزهای امضای اتصال سرویس نیاز دارند تا فقط سیستم بتواند به سرویسها متصل شود.
سیستم سطح حفاظت signature
را به مجوزهای امضا اختصاص می دهد.
مجوزهای زمان اجرا
مجوزهای زمان اجرا، که به عنوان مجوزهای خطرناک نیز شناخته میشوند، به برنامه شما دسترسی بیشتری به دادههای محدود شده میدهند یا به برنامه شما اجازه میدهند تا اقدامات محدودی را انجام دهد که بر سیستم و سایر برنامهها تأثیر بیشتری میگذارد. بنابراین، قبل از اینکه بتوانید به داده های محدود شده دسترسی داشته باشید یا اقدامات محدود شده را انجام دهید، باید مجوزهای زمان اجرا را در برنامه خود درخواست کنید . فرض نکنید که این مجوزها قبلاً اعطا شده اند - آنها را بررسی کنید و در صورت نیاز، قبل از هر دسترسی آنها را درخواست کنید.
هنگامی که برنامه شما مجوز زمان اجرا را درخواست می کند، سیستم درخواست مجوز زمان اجرا را ارائه می دهد، همانطور که در شکل 3 نشان داده شده است.
بسیاری از مجوزهای زمان اجرا به دادههای کاربر خصوصی دسترسی دارند، نوع خاصی از دادههای محدود شده که شامل اطلاعات بالقوه حساس است. نمونه هایی از داده های خصوصی کاربر شامل مکان و اطلاعات تماس است.
میکروفون و دوربین دسترسی به اطلاعات حساس را فراهم می کنند. بنابراین، سیستم به شما کمک می کند توضیح دهید که چرا برنامه شما به این اطلاعات دسترسی دارد .
سیستم سطح حفاظت dangerous
را به مجوزهای زمان اجرا اختصاص می دهد.
مجوزهای ویژه
مجوزهای ویژه مربوط به عملیات برنامه خاص است. فقط پلتفرم و OEM ها می توانند مجوزهای ویژه را تعریف کنند. علاوه بر این، پلتفرم و OEM ها معمولاً زمانی که می خواهند از دسترسی به اقدامات بسیار قدرتمند محافظت کنند، مانند طراحی روی برنامه های دیگر، مجوزهای ویژه ای را تعریف می کنند.
صفحه دسترسی به برنامه ویژه در تنظیمات سیستم شامل مجموعه ای از عملیات قابل تغییر توسط کاربر است. بسیاری از این عملیات به عنوان مجوزهای ویژه اجرا می شوند.
درباره نحوه درخواست مجوزهای ویژه بیشتر بیاموزید.
سیستم سطح حفاظت appop
را به مجوزهای ویژه اختصاص می دهد.
گروه های مجوز
مجوزها می توانند به گروه های مجوز تعلق داشته باشند. گروه های مجوز شامل مجموعه ای از مجوزهای منطقی مرتبط هستند. برای مثال، مجوزهای ارسال و دریافت پیامک ممکن است متعلق به یک گروه باشد، زیرا هر دو به تعامل برنامه با پیامک مربوط می شوند.
گروههای مجوز به سیستم کمک میکنند تا زمانی که یک برنامه مجوزهای مرتبط را درخواست میکند، تعداد گفتگوهای سیستمی را که به کاربر ارائه میشوند به حداقل برساند. هنگامی که یک کاربر برای اعطای مجوز برای یک برنامه کاربردی ارائه می شود، مجوزهای متعلق به همان گروه در همان رابط ارائه می شوند. با این حال، مجوزها می توانند گروه ها را بدون اطلاع قبلی تغییر دهند، بنابراین فرض نکنید که یک مجوز خاص با مجوز دیگری گروه بندی شده است.
بهترین شیوه ها
مجوزهای برنامه مبتنی بر ویژگیهای امنیتی سیستم است و به Android کمک میکند از اهداف زیر مرتبط با حریم خصوصی کاربر پشتیبانی کند:
- کنترل: کاربر روی داده هایی که با برنامه ها به اشتراک می گذارد کنترل دارد.
- شفافیت: کاربر می داند که یک برنامه از چه داده هایی استفاده می کند و چرا برنامه به این داده ها دسترسی دارد.
- به حداقل رساندن داده ها: یک برنامه فقط به داده هایی دسترسی دارد که برای یک کار یا عملکرد خاص مورد نیاز است که کاربر فراخوانی می کند.
این بخش مجموعهای از بهترین روشهای اصلی را برای استفاده مؤثر از مجوزها در برنامه شما ارائه میکند. برای جزئیات بیشتر در مورد نحوه کار با مجوزها در Android، از صفحه بهترین اقدامات مجوزهای برنامه دیدن کنید.
حداقل تعداد مجوز را درخواست کنید
هنگامی که کاربر یک اقدام خاص را در برنامه شما درخواست می کند، برنامه شما باید فقط مجوزهایی را که برای تکمیل آن اقدام نیاز دارد درخواست کند. بسته به نحوه استفاده شما از مجوزها، ممکن است یک راه جایگزین برای انجام موارد استفاده برنامه شما بدون تکیه بر دسترسی به اطلاعات حساس وجود داشته باشد.
مجوزهای زمان اجرا را با اقدامات خاص مرتبط کنید
مجوزها را تا حد امکان در جریان موارد استفاده برنامه خود درخواست کنید. برای مثال، اگر برنامه شما به کاربران اجازه میدهد پیامهای صوتی را برای دیگران ارسال کنند، صبر کنید تا کاربر به صفحه پیامرسانی پیمایش کند و دکمه ارسال پیام صوتی را فشار دهد. پس از اینکه کاربر دکمه را فشار داد، برنامه شما میتواند درخواست دسترسی به میکروفون کند.
وابستگی های برنامه خود را در نظر بگیرید
هنگامی که یک کتابخانه را شامل میشوید، الزامات مجوز آن را نیز به ارث میبرید. از مجوزهایی که هر وابستگی نیاز دارد و آن مجوزها برای چه مواردی استفاده می شود آگاه باشید.
شفاف باشید
هنگامی که درخواست مجوز میکنید، در مورد مواردی که به آنها دسترسی دارید، چرا، و در صورت رد شدن مجوزها بر چه ویژگیهایی تأثیر میگذارند، شفاف باشید تا کاربران بتوانند آگاهانه تصمیم بگیرند.
دسترسی های سیستمی را صریح کنید
هنگامی که به دادهها یا سختافزار حساس مانند دوربین یا میکروفون دسترسی دارید، در صورتی که سیستم قبلاً این نشانگرها را ارائه نکرده باشد، یک علامت پیوسته در برنامه خود ارائه دهید. این یادآوری به کاربران کمک میکند بفهمند برنامه شما دقیقاً چه زمانی به دادههای محدود شده دسترسی دارد یا اقدامات محدود شده را انجام میدهد.
مجوزها در اجزای سیستم
مجوزها فقط برای درخواست عملکرد سیستم نیستند. همانطور که در صفحه درباره نحوه محدود کردن تعامل با برنامههای دیگر توضیح داده شده است، اجزای سیستم برنامه شما میتوانند برنامههای دیگر را که میتوانند با برنامه شما تعامل داشته باشند، محدود کنند.
،مجوزهای برنامه با محافظت از دسترسی به موارد زیر به حمایت از حریم خصوصی کاربر کمک می کند:
- داده های محدود شده ، مانند وضعیت سیستم و اطلاعات تماس کاربران
- اقدامات محدود شده ، مانند اتصال به دستگاه جفت شده و ضبط صدا
این صفحه یک نمای کلی از نحوه عملکرد مجوزهای Android، از جمله یک گردش کار سطح بالا برای استفاده از مجوزها، شرح انواع مختلف مجوزها، و برخی از بهترین شیوه ها برای استفاده از مجوزها در برنامه شما ارائه می دهد. صفحات دیگر توضیح میدهند که چگونه درخواستهای برنامه خود را برای مجوزها به حداقل برسانید ، مجوزها را اعلام کنید ، مجوزهای زمان اجرا را درخواست کنید ، و نحوه تعامل سایر برنامهها با اجزای برنامه را محدود کنید .
برای مشاهده لیست کامل مجوزهای برنامه Android، از صفحه مرجع API مجوزها دیدن کنید.
برای مشاهده برخی از برنامههای نمونه که گردش کار مجوزها را نشان میدهند، از مخزن نمونه مجوزهای Android در GitHub دیدن کنید.
گردش کار برای استفاده از مجوزها
اگر برنامه شما عملکردی ارائه می دهد که ممکن است نیاز به دسترسی به داده های محدود یا اقدامات محدود داشته باشد، تعیین کنید که آیا می توانید اطلاعات را دریافت کنید یا اقدامات را بدون نیاز به اعلام مجوز انجام دهید. شما می توانید بسیاری از موارد استفاده را در برنامه خود انجام دهید، مانند گرفتن عکس، توقف پخش رسانه، و نمایش تبلیغات مرتبط، بدون نیاز به اعلام هیچ مجوزی.
اگر تصمیم دارید که برنامه شما باید به دادههای محدود دسترسی داشته باشد یا اقدامات محدود شده را برای انجام یک مورد استفاده انجام دهد، مجوزهای مناسب را اعلام کنید. برخی از مجوزها، که به عنوان مجوزهای زمان نصب شناخته می شوند، به طور خودکار با نصب برنامه شما اعطا می شوند. سایر مجوزها، که به عنوان مجوزهای زمان اجرا شناخته می شوند، به برنامه شما نیاز دارند که یک قدم فراتر رفته و در زمان اجرا مجوز درخواست کند.
شکل 1 گردش کار برای استفاده از مجوزهای برنامه را نشان می دهد:
انواع مجوزها
اندروید مجوزها را به انواع مختلفی از جمله مجوزهای زمان نصب، مجوزهای زمان اجرا و مجوزهای ویژه دسته بندی می کند. نوع هر مجوز، دامنه دادههای محدود شدهای را که برنامه شما میتواند به آنها دسترسی داشته باشد، و دامنه اقدامات محدودی را که برنامه شما میتواند انجام دهد، نشان میدهد، زمانی که سیستم به برنامه شما این مجوز را میدهد. سطح حفاظت برای هر مجوز بر اساس نوع آن است و در صفحه مرجع API مجوزها نشان داده شده است.
مجوزهای زمان نصب
مجوزهای زمان نصب به برنامه شما دسترسی محدودی به داده های محدود شده می دهد یا به برنامه شما اجازه می دهد اقدامات محدودی را انجام دهد که حداقل بر سیستم یا سایر برنامه ها تأثیر می گذارد. هنگامی که مجوزهای زمان نصب را در برنامه خود اعلام می کنید، یک فروشگاه برنامه زمانی که صفحه جزئیات برنامه را مشاهده می کند، همانطور که در شکل 2 نشان داده شده است، یک اعلان مجوز زمان نصب به کاربر ارائه می دهد. سیستم به طور خودکار مجوزها را هنگام نصب کاربر به برنامه شما اعطا می کند. برنامه شما
Android شامل چندین نوع زیرمجموعه از مجوزهای زمان نصب، از جمله مجوزهای عادی و مجوزهای امضا است.
مجوزهای عادی
این مجوزها امکان دسترسی به داده ها و اقداماتی را فراهم می کند که فراتر از جعبه ایمنی برنامه شما است، اما خطر بسیار کمی برای حریم خصوصی کاربر و عملکرد سایر برنامه ها ایجاد می کند.
سیستم سطح حفاظت normal
را به مجوزهای عادی اختصاص می دهد.
مجوزهای امضا
سیستم تنها زمانی به یک برنامه اجازه امضا می دهد که برنامه با همان گواهینامه برنامه یا سیستم عاملی که مجوز را تعریف می کند امضا شده باشد.
برنامههایی که سرویسهای ممتاز را پیادهسازی میکنند، مانند سرویسهای تکمیل خودکار یا VPN، از مجوزهای امضا نیز استفاده میکنند. این برنامهها به مجوزهای امضای اتصال سرویس نیاز دارند تا فقط سیستم بتواند به سرویسها متصل شود.
سیستم سطح حفاظت signature
را به مجوزهای امضا اختصاص می دهد.
مجوزهای زمان اجرا
مجوزهای زمان اجرا، که به عنوان مجوزهای خطرناک نیز شناخته میشوند، به برنامه شما دسترسی بیشتری به دادههای محدود شده میدهند یا به برنامه شما اجازه میدهند تا اقدامات محدودی را انجام دهد که بر سیستم و سایر برنامهها تأثیر بیشتری میگذارد. بنابراین، قبل از اینکه بتوانید به داده های محدود شده دسترسی داشته باشید یا اقدامات محدود شده را انجام دهید، باید مجوزهای زمان اجرا را در برنامه خود درخواست کنید . فرض نکنید که این مجوزها قبلاً اعطا شده اند - آنها را بررسی کنید و در صورت نیاز، قبل از هر دسترسی آنها را درخواست کنید.
هنگامی که برنامه شما مجوز زمان اجرا را درخواست می کند، سیستم درخواست مجوز زمان اجرا را ارائه می دهد، همانطور که در شکل 3 نشان داده شده است.
بسیاری از مجوزهای زمان اجرا به دادههای کاربر خصوصی دسترسی دارند، نوع خاصی از دادههای محدود شده که شامل اطلاعات بالقوه حساس است. نمونه هایی از داده های کاربر خصوصی شامل مکان و اطلاعات تماس است.
میکروفون و دوربین دسترسی به اطلاعات بسیار حساس را فراهم می کند. بنابراین ، سیستم به شما کمک می کند تا توضیح دهید که چرا برنامه شما به این اطلاعات دسترسی پیدا می کند .
این سیستم سطح حفاظت dangerous
را به مجوزهای زمان اجرا اختصاص می دهد.
مجوزهای خاص
مجوزهای ویژه با عملیات برنامه خاص مطابقت دارد. فقط پلتفرم و نصب شده می توانند مجوزهای ویژه ای را تعریف کنند. علاوه بر این ، پلتفرم و OEM ها معمولاً مجوزهای ویژه ای را در صورتی که می خواهند از دسترسی به اقدامات خاص قدرتمند مانند ترسیم برنامه های دیگر محافظت کنند ، تعریف می کنند.
صفحه دسترسی ویژه برنامه در تنظیمات سیستم شامل مجموعه ای از عملیات قابل استفاده در کاربر است. بسیاری از این عملیات به عنوان مجوزهای ویژه اجرا می شوند.
در مورد نحوه درخواست مجوزهای ویژه بیشتر بدانید.
این سیستم سطح حفاظت appop
را به مجوزهای ویژه اختصاص می دهد.
گروه های مجوز
مجوزها می توانند متعلق به گروه های مجوز باشند. گروه های مجوز شامل مجموعه ای از مجوزهای منطقی مرتبط هستند. به عنوان مثال ، مجوزهای ارسال و دریافت پیام کوتاه ممکن است متعلق به همان گروه باشد ، زیرا هر دو مربوط به تعامل برنامه با پیامک هستند.
گروه های مجوز به سیستم کمک می کنند تا در هنگام درخواست یک برنامه از مجوزهای مرتبط با آن ، تعداد گفتگوهای سیستم را که به کاربر ارائه می شود به حداقل برساند. هنگامی که یک کاربر با درخواست اعطای مجوز برای یک برنامه ارائه می شود ، مجوزهای متعلق به همان گروه در همان رابط ارائه می شود. با این حال ، مجوزها می توانند گروه ها را بدون اطلاع قبلی تغییر دهند ، بنابراین فرض نکنید که مجوز خاصی با مجوز دیگری گروه بندی می شود.
بهترین شیوه ها
مجوزهای برنامه بر روی ویژگی های امنیتی سیستم ایجاد می شود و به اندروید کمک می کند تا از اهداف زیر مربوط به حریم خصوصی کاربر پشتیبانی کند:
- کنترل: کاربر بر داده هایی که با برنامه ها به اشتراک می گذارند ، کنترل دارد.
- شفافیت: کاربر می داند که یک برنامه از چه داده ای استفاده می کند و چرا برنامه به این داده ها دسترسی پیدا می کند.
- به حداقل رساندن داده ها: یک برنامه فقط از داده های مورد نیاز برای یک کار یا عملی خاص که کاربر استفاده می کند ، دسترسی دارد و از آن استفاده می کند.
در این بخش مجموعه ای از بهترین روشهای اصلی برای استفاده از مجوزها به طور مؤثر در برنامه شما ارائه شده است. برای اطلاعات بیشتر در مورد نحوه کار با مجوزها در Android ، به صفحه بهترین شیوه های مجوزهای برنامه مراجعه کنید.
حداقل تعداد مجوزها را درخواست کنید
هنگامی که کاربر درخواست یک اقدام خاص در برنامه شما می کند ، برنامه شما فقط باید مجوزهای لازم را برای انجام این عمل درخواست کند. بسته به نحوه استفاده از مجوزها ، ممکن است یک روش جایگزین برای تحقق پرونده استفاده از برنامه شما بدون تکیه بر دسترسی به اطلاعات حساس وجود داشته باشد.
مجوزهای زمان اجرا را با اقدامات خاص مرتبط کنید
مجوزها را در اواخر جریان موارد استفاده برنامه خود درخواست کنید. به عنوان مثال ، اگر برنامه شما به کاربران اجازه می دهد پیام های صوتی را به دیگران ارسال کنند ، صبر کنید تا کاربر به صفحه پیام رسانی حرکت کند و دکمه ارسال پیام صوتی را فشار داده است. پس از فشار کاربر دکمه ، برنامه شما می تواند دسترسی به میکروفون را درخواست کند.
وابستگی های برنامه خود را در نظر بگیرید
هنگامی که یک کتابخانه را درج می کنید ، الزامات مجوز آن را نیز به ارث می برید. از مجوزهایی که هر وابستگی به آن نیاز دارد و آنچه از آن مجوزها استفاده می شود آگاه باشید.
شفاف باشید
هنگامی که درخواست مجوز می دهید ، در مورد آنچه به شما دسترسی پیدا می کنید ، چرا و در صورت رد مجوزها ، چه ویژگی هایی را تحت تأثیر قرار می دهد ، بنابراین کاربران می توانند تصمیمات آگاهانه بگیرند.
دسترسی به سیستم را صریح انجام دهید
هنگامی که به داده های حساس یا سخت افزار مانند دوربین یا میکروفون دسترسی پیدا می کنید ، اگر سیستم قبلاً این شاخص ها را ارائه نمی دهد ، نشانه ای مداوم در برنامه خود ارائه دهید. این یادآوری به کاربران کمک می کند تا دقیقاً چه موقع دسترسی به داده های محدود یا انجام اقدامات محدود را درک کند.
مجوزها در اجزای سیستم
مجوزها فقط برای درخواست عملکرد سیستم نیست. مؤلفه های سیستم برنامه شما می توانند محدود کنند که برنامه های دیگر می توانند با برنامه شما ارتباط برقرار کنند ، همانطور که در صفحه در مورد نحوه محدود کردن تعامل با سایر برنامه ها توضیح داده شده است.