<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mohammadb72</title>
        <link>https://virgool.io/feed/@mohammadb72</link>
        <description>برنامه نویس اندرویدم ولی : «بدان جا رسید علم من، که دانستم هیچ نمی دانم»</description>
        <language>fa</language>
        <pubDate>2026-06-10 14:47:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/53540/avatar/I5eCur.png?height=120&amp;width=120</url>
            <title>mohammadb72</title>
            <link>https://virgool.io/@mohammadb72</link>
        </image>

                    <item>
                <title>حریم خصوصی ، امنیت و فریب  - داده های کاربر : اطلاعات شخصی و حساس</title>
                <link>https://virgool.io/@mohammadb72/privacy-security-deception-personal-sensitive-wplqaipb15nk</link>
                <description>سلام :)پیرو پست قبلی که راجع بهش باهم صحبت کرده بودیم، توی این پست قراره راجع به سومین خط مشی گوگل پلی یعنی سه سرفصل مهم (حریم خصوصی، امنیت و فریب) صحبت کنیم.همونطور که همه شماها هم در جریان هستید، شرکت گوگل دربرابر کاربرانش متعهد شده که از حریم خصوصی اون ها دربرابر برنامه های فریبنده، مخرب، و یا برنامه هایی که قصد سوء استفاده از حریم شخصی رو دارند محافظت کنه و یک محیط امن، ایمن و قابل اعتمادی رو برای کاربران به وجود بیاره. به همین خاطر، اپلیکیشن هایی که سه مورد (فریبنده، مخرب و یا سوء استفاده گر) رو داشته باشه؛ بلافاصله حذف و جلوی انتشار اون ها رو میگیره.در این بین یکی از مواردی که خیلی برای گوگل مهمه، داده های کاربران هست؛ که قراره توی این مقاله راجع به این موضوع صحبت کنیم .داده های کاربراناولین چیزی که گوگل از شما میخواد، این که، در رابطه با نحوه کار کردن با داده های به دست آمده (یعنی اطلاعات جمع آوری شده از کاربر، یا اطلاعات دستگاه) با کاربرانتون شفاف باشید و به صورت کامل توضیح بدید که قصد دارید این داده ها رو با چه هدفی، برای چه کاری و تا چه سطحی ازش استفاده کنید و در ادامه ی این موارد هم ازتون خواسته، تا جایی که می تونید استفاده از این اطلاعات رو محدود کنید.علاوه بر این موارد، اگر اپلیکیشنتون به اطلاعات شخصی یا داده های حساس کاربر دسترسی داره؛ حتما مواردی رو که این پایین (بخش اطلاعات شخصی و حساس) بهش اشاره شده رو به یاد داشته باشید.اطلاعات شخصی و حساسداده های شخصی و حساس کاربر، طیف بسیار گسترده تری نسبت به اون چیزی که در این مقاله میخوام بهتون بگم داره، و فقط محدود به این موارد نمیشه، اما اگر بخوایم یک نگاه کلی به چند مورد مهم داشته باشیم؛میشه به : اطلاعات شخصی قابل شناسایی، اطلاعات مالی و پرداختی، اطلاعات تأیید اعتبار، دفترچه تلفن، مخاطبین، محل دستگاه (Device Location)، اس ام اس و داده های مربوط به تماس، میکروفون، دوربین و... سایر داده های حساس دستگاه اشاره کرد.اگر برنامه تون به داده های حساس کاربر دسترسی داره شما باید حتما نکات زیر رو رعایت کنید :1 - تا جایی که میشه دسترسی، جمع آوری، استفاده و به اشتراک گذاری داده های شخصی و حساس کاربران رو که از طریق اپلیکیشن، برای بهبود و یا تهیه قابلیت های برنامه تون به دست میاد رو محدود کنید. (واوووووو چقدر جمله اش طولانی شد ?) اجازه بدید با یک مثال توضیح بدم :فرض کنید که شما به عنوان یک برنامه نویس، یک اپلیکیشن آنلاین موسیقی طراحی کردید که کاربر میتونه آهنگ های مورد علاقه اش رو از طریق اپلیکیشن دانلود کنه. خب طبیعتا برای انجام این کار، ابتدا نیاز هست که اجازه دسترسی به فایل ها رو از کاربر بگیریدبعد از این که مجوز دسترسی به فایل ها رو با هدف دانلود کردن موسیقی و ذخیره سازی اون در حافظه، از کاربر گرفتید؛ شما دیگه کاملا آزادید که هر کاری که دلتون میخواد بکنید ?،دسترسی به پوشه ها، فایل های شخصی و هر چیز دیگه ای که مربوط به حافظه (یا همون Storage) کاربر میشه.اما دیگه خواهشا پاتون رو فراتر از حدتون نذارید ? و به همین حد از دسترسی محدود، بسنده کنید.بنابراین اگر بخوایم خودمونی و خلاصه وار بگیم : از دسترسی هایی که گرفتی، به همون اندازه استفاده کن که به کاربر قولش رو دادی، نه کمتر و نه بیشتر.2 - اپ هایی که از یک سری دسترسی ها (دسترسی به موقعیت مکانی) برای ارائه تبلیغات استفاده می کنند، باید با خط مشی تبلیغات گوگل پلی مطابقت داشته باشه.مثلا شما اگر یک اپلیکیشنی درست کردید که بنا بر موقعیت مکانی کاربر، بهش یک سری پیشنهادات تبلیغاتی میده، حتما باید با خطی مشی تبلیغات گوگل پلی که بعدا مفصل تر راجع بهش صحبت می کنیم؛ مطابقت داشته باشه.3 - شمایی که قصد استفاده از داده های حساس و شخصی کاربران رو داری، حتما باید یک خط مشی راز داری مخصوص به اپلیکیشنت رو، هم در داخل برنامه و هم در توضیحات Play Console قرار بدی، تا کاربر کاملا متوجه بشه که نحوه استفاده، دستیابی، جمع آوری و به اشتراک گذاری داده هاش به چه صورت هست.در ادامه همون مثال اپلیکیشن موسیقی فرض کنید شما برای این  که بتونید از برنامه تون پول دربیارید، یک سیستم تبلیغاتی درون برنامه قرار دادید. که این سیستم تبلیغاتی، بنا به نوع اپلیکیشن هایی که کاربر روی گوشیش نصب داره، بهش اپلیکیشن جدید پیشنهاد میده. اما مسئله ای که هست این که، شما توانایی پیاده سازی یک هوش مصنوعی به منظور پیدا کردن علایق کاربر رو ندارید ☹️. برای همین، مجبورید که از Apiهای شرکت X که در زمینه هوش مصنوعی تخصص داره، کمک بگیرید تا بتونید هدف تون رو پیاده سازی کنید.⚠️اما نکاتی که لازم هست توجه کنید⚠️1 - بررسی اپلیکیشن های گوشی کاربر نیاز به دسترسی خاصی نداره و شما به راحتی و بدون هیچ مشکلی می تونید این کار رو انجام بدید، ولی از دید گوگل این مورد شامل داده های حساس کاربر میشه و شما باید به کاربرتون اطلاع بدید که قصد دارید همچین کاری رو انجام بدید.2 - از اون جایی که شما برای پیشنهاد دادن تبلیغات، توانایی پردازش داده های به دست آمده رو ندارید و قرار هست که داده ها رو با شرکت X برای پردازش، به اشتراک بذارید. پس این مورد رو هم حتما باید ذکر کنید.بنابراین با توجه به مواردی که گفته شد، بهتره شما یک خط مشی راز داری مربوط به اپلیکیشن تون رو، هم در داخل برنامه و هم در توضیحات اپلیکیشن Play Console قرار بدید. و همه کارهایی که قصد دارید انجام بدید رو به صورت واضح و شفاف به کاربر توضیح بدید.4 - تمام داده های شخصی یا حساس کاربر رو به طور ایمن اداره کنید ، از جمله انتقال داده های کاربر با استفاده از رمزنگاری های مدرن (برای مثال ، از طریق HTTPS).5 - برای دسترسی به مجوزهایی که نیاز دارید، حتما از جوازهای زمان اجرا (Runtime Permissions) برای برنامه تون استفاده کنید.6 - داده های شخصی یا حساس کاربران رو هرگز نفروشید. ??درست حسابی شفافیت داشته باش، بعد رضایت کاربر رو بگیردر بسیاری از موارد پیش اومده که شما برای یک دسترسی کاملا منطقی جهت بهتر کردن عملکرد برنامه تون (مثلا همین مجوز دادن کاربر به اپلیکیشن موسیقی جهت دانلود فایل)، با مخالفت کاربر رو به رو شدید و کاربر اجازه این سطح از دسترسی رو به شما نداده. برای این کار، شما باید یک شفافیت کامل و واضحی رو به کاربر داخل اپلیکیشن ارائه بدید و به کاربر بگید که این داده ها رو با چه هدفی نیاز به : دسترسی، جمع آوری، استفاده و یا به اشتراک گذاری دارید.به همین خاطر بهتره که توضیحات شفاف سازی تون رو :1 - علاوه بر این که در وبسایت تون (این که حتما وبسایت داشته باشید الازمی نیست) و توضیحات Play Console می نویسید. حتما باید در داخل اپلیکیشن هم یک قسمتی رو به این توضیحات اختصاص بدید.2 - توی یک صفحه با دسترسی سریع به کاربر نشون بدید و از انتقال دادن کاربر به صفحات منو و یا تنظیمات خودداری کنید (انصافا گوگل خیلی دیگه داره سخت میگیره هاااا) 3 - به صورت کامل شرح بدید و به کاربر بگید که این اطلاعات رو برای چه هدفی، جمع آوری و استفاده می کنید. و اگر هم چنانچه قرار هست داده ها رو مطابق مثالی که بالاتر زدم؛ با شرکت X به اشتراک بذارید؛ از نحوه چگونگی و دلایل این کارتون برای کاربر بگید.4 - در خط مشی رازداری تون از بیان نکات متفرقه و سیاست های دیگه ای که دارید؛ حتما خودداری کنید و فقط فوکوس تون رو روی مواردی که مربوط میشه به داده های حساس و شخصی کاربر بذارید (مثلا اگر مطابق سیاست تون دانلود بیشتر از 5 فایل موسیقی مجاز نیست، از قید کردن این نکته در خط مشی رازداری جدا خودداری کنید)5 - علاوه بر این که در خط مشی رازداری این موارد رو بیان می کنید،حتما درمواقع دیگه هم به این موارد اشاره کنید (به عنوان مثال، علاوه بر این که در خط مشی رازداری به این نکته اشاره کردید که، علت دسترسی به حافظه برای دانلود فایل موسیقی هست، موقعی هم که قصد دارید جواز زمان اجرا (Runtime Permission) رو از کاربر بگیرید، مجددا این نکته رو یادآور بشید)6 - قبل از نمایش دادن جواز زمان اجرا (Runtime Permission) یک مرتبه دیگه، یادآور بشید که این دسترسی رو برای چه هدفی لازم دارید. و بعد از اون بلافاصله صفحه جواز زمان اجرا (Runtime Permission) رو به کاربر نشون بدید.در رابطه با صفحه جواز زمان اجرا (Runtime Permission) بهتره سه نکته رو یادآور بشم که :1 - صفحه (دیالوگی) که به کاربر قبل از جواز زمان اجرا (Runtime Permission) نشون داده میشه، حتما باید شفاف و بدون ابهام و پیچیدگی باشه.2 - دیالوگ نمایش داده شده، نیاز به واکنش مستقیم کاربر داشته باشه. به این معنی که یا کاربر دکمه تایید رو بزنه و دیالوگ زمان اجرا(Runtime Permission) بهش نمایش داده بشه.یا هم اگر تصمیم به کنسل کردن دیالوگ داشت، فقط و فقط با زدن دکمه (لغو، نیازی ندارم و...) این کار رو انجام بده و نتونه با زدن دکمه back یا کلیک کردن روی نواحی خالی صفحه این کار رو انجام بده. (فلسفه این کار برای این هست که مطمئن بشیم کاربر متن رو کامل خونده و با آگاهی درخواست دسترسی ما رو کنسل کرده، نه از سر اتفاقی خوردن دستش روی ناحیه خالی صفحه)3 - پس با توجه به موارد گفته شده در مورد 2 از نمایش دادن دیالوگی هایی که به صورت اتومات و بعد از گذشتن چند ثانیه بسته میشن، جدا خودداری کنید.⛔️نمونه از تخلف ها :اگر برنامه ای نوشتید که به فهرست برنامه های نصب شده کاربر دسترسی دارهاگر برنامه ای نوشتید که به لیست مخاطبین کاربر دسترسی دارهاگر برنامه ای نوشتید که صفحه گوشی کاربر رکورد میکنهاگر برنامه ای نوشتید که موقعیت مکانی کاربر رو رصد و نگهداری میکنههمه این داده ها به عنوان داده های حساس و شخصی کاربر در نظر گرفته میشن و شما برای استفاده از این داده ها حتما باید به کاربرتون اطلاع بدید.</description>
                <category>mohammadb72</category>
                <author>mohammadb72</author>
                <pubDate>Mon, 01 Jun 2020 14:16:48 +0430</pubDate>
            </item>
                    <item>
                <title>گوگل پلی و دیگر هیچ ... :)</title>
                <link>https://virgool.io/@mohammadb72/%DA%AF%D9%88%DA%AF%D9%84-%D9%BE%D9%84%DB%8C-%D9%88-%D8%AF%DB%8C%DA%AF%D8%B1-%D9%87%DB%8C%DA%86-ncem1pcibwdr</link>
                <description>سلامچند مدتی از تصمیمم راجع به این که فعالیتم رو در زمینه درآمد دلاری شروع کنم میگذره، و توی این بازه ای که گذشت موارد زیادی رو بررسی کردم که اگر بخوام به سه تا، از دونه درشت هاش اشاره کنم؛ میشه به فریلنسر، یوتیوب و گوگل پلی اشاره کرد که در نهایت از بین این سه مورد به این نتیجه رسیدم که کارم رو با انتشار اپلیکیشن در گوگل­ پلی و درآمد زایی از این پلتفرم شروع کنم.بعد از تحقیقات بیشتری که در این زمینه (گوگل پلی) داشتم، به این نتیجه رسیدم که اونقدرها هم که فکر میکردم کار آسون و راحتی نیست و چالش های خاص و مربوط به خودش رو داره ?. برای همین تصمیم گرفتم؛ همزمان که توی این مسیر با چالش ها و مشکلاتی رو میشم، یا اگر تجربه جدیدی کسب میکنم، اون ها رو اینجا با شما به اشتراک بذارم. و اما اولین چالشیکی از مرسوم ترین چالش هایی که در این زمینه، حتی برای با تجربه ترین توسعه دهنده ها رخ میده، عدم توجه به خط مشی و سیاست هایی هست که گوگل در رابطه با انتشار اپلیکیشن بیان میکنه. بسیاری از اپلیکیشن ها که به آمار بالایی از نصب رسیدند، بدون این که دلیلش رو بدونند، با اخطار حذف، یا معلق شدن اپلیکیشن شون رو به رو شدند که درصد بالایی از این موارد، مربوط به عدم رعایت خط مشی گوگل پلی هست.به همین منظور تصمیم گرفتم مقالاتم رو، با به اشتراک گذاشتن مباحثی راجع به سیاست های گوگل پلی در رابطه با انتشار اپلیکیشن شروع کنم.اگر بخوایم یک نگاه کلی به مبحاثی که قرارهست راجع بهشون صحبت کنیم (فقط مباحث مربوط به سیاست های گوگل پلی) بندازم، میشه اون ها رو اینطوری دسته بندی کرد : محتواهای نامناسبجعل هویت و مالکیت معنویحریم خصوصی ، امنیتکسب درآمد و تبلیغاتتاکتیک های ناعادلانهاسپم و حداقل عملکردبرنامه های دیگرخانواده هانقص سیاست هامواردی که این بالا نوشته شد، خلاصه ای بود از آنچه که قرار هست در آینده راجع به اون صحبت کنیم، البته ناگفته نمونه که توی این مسیر زهرا هم کمکم میکنه و قراره دو نفری باهم از تجربیات مون براتون بگیمپس ازتون میخوام تا آخر این مسیر با هم باشیم تا بتونیم چیزهای بیشتری رو در این باره یادبگیریم :) </description>
                <category>mohammadb72</category>
                <author>mohammadb72</author>
                <pubDate>Sun, 31 May 2020 12:16:01 +0430</pubDate>
            </item>
                    <item>
                <title>اصول و پایه یک اپلیکیشن اندرویدی - قسمت 1 - امنیت</title>
                <link>https://virgool.io/MobileLab/%D8%A7%D8%B5%D9%88%D9%84-%D9%88-%D9%BE%D8%A7%DB%8C%D9%87-%DB%8C%DA%A9-%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-1-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-voxkn2a87pul</link>
                <description>همونطور که می دونید برنامه های اندرویدی می­تونن با زبان­های کاتلین، جاوا و C++ نوشته بشند. که در این بین، ابزارهایی که به اسم Android SDK tools معروفند کد شما رو به همراه هر منبع دیگه­ ای که دارید (فایل های عکس، ویدئو، صوت و ...) باهمدیگه کامپایل می­کنن و در یک فایلی به اسم APK یا همون AndroidPackage قرار میدن. یک فایل APK حاوی تمام محتویی هست که در اپلیکیشنی که قرار روی گوشی کاربر نصب بشه داره .هر برنامه اندرویدی در SandBox امنیتی خودش و با ویژگی های امنیتی زیر محافظت میشه :1- سیستم عامل اندروید در واقع یک سیستم عامل چند کاربره لینوکس هست که در اون هر اپلیکیشن یک کاربر جداگانه محسوب میشه و به این ترتیب هر اپلیکیشن جدا از اپلیکیشن دیگه و در فرآیند ماشین مجازی (VM) مخصوص به خودش اجرا میشه و از دسترسی به سایر قابلیت های اپلیکیشن های دیگه محدود هست.بذارید یکم ساده تر توضیح بدم :)فرض کنید که یک سیستم عامل لینوکس روی کامپیوترتون نصب دارید که شما و چندتا دیگه از دوستاتون هرکدوم یک حساب کاربری روی اون کامپیوتر داره. خب طبیعتا اولین اصل امنیتی این هست که هرکابر جدا از مواردی که مشترک هست فقط به منابع و فایل های خودش دسترسی داشته باشه و نتونه مثلا وارد پوشه شخصی شما بشه? .اندروید دقیقا از یک همچین مکانیزمی برای ایمن کردن اپلیکیشن ها استفاده میکنه، به این صورت که هر اپلیکیشن معادل یک کاربر میشه و فقط به منابع خودش دسترسی داره (البته اگر گوشی رو روت نکرده باشید?) خب اینجوری به عنوان یک کاربر خیالتون راحت هست که اگر خدایی نکرده یک موقعی اپلیکیشن مخرب روی گوشی تون نصب کردید، اون اپلیکیشن دیگه نمی تونه به اطلاعات یک اپلیکیشن دیگه (مثلا تلگرام یا واتساپ که برای خیلی ها به لحاظ حریم شخصی مهم هستند) دسترسی داشته باشه.همچین چیزی تقریبا!!!شاید برای بعضی هاتون این سوال پیش بیاد که با این اوصاف چطور بعضی از اپلیکیشن ها داده هاشون رو با هم به اشتراک میذارند؟؟!!!خب جواب این سوال راحته !!!!!با اشتراک گذاری ?هر اپلیکیشن مشخص میکنه که چه اپلیکیشن هایی می تونند از منابع و داده های اون اپلیکیشن و تا چه حدی استفاده کنند. 2- سیستم عامل به هر اپلیکیشن یک شناسه منحصر به فرد (UID که مخفف UserID هست) اختصاص میده که این شناسه فقط توسط سیستم عامل قابل شناسایی و از دید اپلیکیشن مخفی هست. سیستم عامل از این شناسه برای کنترل کردن سطح دسترسی هر اپلیکیشن به منابع (دوربین، GPS، فایل و...) استفاده می کنه و از این طریق سطح دسترسی هر اپلیکیشن مشخص میشه.3- هر اپلیکیشنی فرایند مخصوص به خودش رو داره و سیستم عامل تنها زمانی که اپلیکیشن نیاز به اجرا کردن کامپوننت های مخوصص به خودش (Activity, Service, Broadcast, Content Provider) رو داشته باشه اونها رو اجرا میکنه، در غیر این صورت اگر به اون فرایند یا پروسه برای مدت زیادی نیازی نباشه یا مموری نیاز به بازیابی داشته باشه، فرایند اون اپلیکیشن رو ShutDown میکنه.منبع : Android Developer</description>
                <category>mohammadb72</category>
                <author>mohammadb72</author>
                <pubDate>Wed, 05 Feb 2020 10:14:24 +0330</pubDate>
            </item>
            </channel>
</rss>