PDA

View Full Version : ذخیره کاربر ویژه بودن



shs1377
یک شنبه 30 شهریور 1393, 15:04 عصر
سلام بنظرتون بهترین روش برای ذخیره کاربر ویژه بودن پرداخت درون برنامه ای بازار چیه؟؟

یعنی نمیخوام برای هر دفعه ورود به بخش های برنامه از طرف بازار چک بشه که ویژه هست یا نه

با shared preferences میشه این کار رو کرد ولی اصلا امن نیست و هر کسی که گوشیش روت باشه براحتی میشه تغییرش بده

راه بهتری سراغ دارین؟

seyed.mehdi
یک شنبه 30 شهریور 1393, 17:40 عصر
فک کنم اون دفعه که خونده بودم توضیحاتو میگفت خودش هر بار چک میکنه وقتی طرف به اینترنت وصله

momayyezi_m
یک شنبه 30 شهریور 1393, 22:36 عصر
یا اینکه هر بار وارد میشه باث به نت وصل باشه که امن ترین راه هست ولی برای کاربر ،یه اتفاق ناخوشاینده
یا sharedprefrence هست که حالا امنیتش پایین هست ولی یه کار راحت و بی دردسر هست
یا اینکه باث برای برنامت یوزر تعریف کنی و طرف ثبت نام کنه و دیگه ارتباط با سرور میخواد

omid.n1990
یک شنبه 30 شهریور 1393, 23:41 عصر
شما یا باید متصل به اینترنت باشید و یا اینکه سطح کاربر رو توی برنامه اتون یک جا تعیین کنید. sharedpreferences به نظر بهترین گزینه میاد.
خیلی مهم بود شما بعد از رجیستر شدن کاربر توی sharedpreferences اطلاعات رو تعیین کنید، ترجیحا جوری تعیین کنید که قابل حدس نباشه، دوست داشتید توی دیتابیس و فایل هم ذخیره کنید. موقع چک کردن هم هر سه تا مسیر رو چک کنید اگر همه درست بود اون موقع فعال در نظر بگیرید. کسی که حال داشته باشه بره این سه بخش رو تغییر بده نوش جونش بذار استفاده کنه :)

jalil_gh
دوشنبه 31 شهریور 1393, 09:21 صبح
به نظر من بهترین راه ترکیبی از هر دوتا است. یعنی هم تو shared preferences دخیره کنی و هر بار هم چک کنی.
به عنوان نمونه:
وقتی کاربر وارد برنامه می‌شه shared preference رو چک کنید. اگه کاربر ویژه بود امکانات نسخه ویژه رو در اختیارش میزارید و همزمان در پشت صحنه چک کنید که آیا واقعاً ویژه هست یا نه. اگه ویژه بود که هیچ. اگه نبود shared preferences رو تغییر بدید تا دفعه بعد که وارد برنامه میشه به عنوان کاربر عادی باشه.

slr560
دوشنبه 31 شهریور 1393, 09:54 صبح
نیازی به کارایی که بالا گفته شد نیست
شما از کتابخونه زیر استفاده کن. تمام shared preferences رو با AES 256bit کد میکنه و عقل جن هم نمیرسه :لبخند:
برو حالشو ببر
داکیومنت استفادشم کامل بخون. این کتابخونه طلاس یادت نره
https://github.com/scottyab/secure-preferences

jalil_gh
دوشنبه 31 شهریور 1393, 11:17 صبح
دخیر کردن کاربر ویژه بودن فقط در shared preferences یک ضعف دیگه داره. اونم اینه که یک نفر می‌تونه با اکانت خودش تو هر چند تا گوشی که خواست برنامه رو ویژه کنه. برای جلوگیری از این بهتره که گهگاهی ویژه بودن از طریق مارکت چک بشه.

shs1377
دوشنبه 31 شهریور 1393, 12:54 عصر
فک کنم اون دفعه که خونده بودم توضیحاتو میگفت خودش هر بار چک میکنه وقتی طرف به اینترنت وصله


من نمیخوام که هر دفعه چک کنه چون بعضیا نت ندارن

shs1377
دوشنبه 31 شهریور 1393, 12:56 عصر
یا اینکه هر بار وارد میشه باث به نت وصل باشه که امن ترین راه هست ولی برای کاربر ،یه اتفاق ناخوشاینده
یا sharedprefrence هست که حالا امنیتش پایین هست ولی یه کار راحت و بی دردسر هست
یا اینکه باث برای برنامت یوزر تعریف کنی و طرف ثبت نام کنه و دیگه ارتباط با سرور میخواد
ارتباط با سرور یکم واسم سنگینه خوب بلد نیستم البته چند تا کار کردم ولی نه بصورت کامل

shs1377
دوشنبه 31 شهریور 1393, 13:04 عصر
شما یا باید متصل به اینترنت باشید و یا اینکه سطح کاربر رو توی برنامه اتون یک جا تعیین کنید. sharedpreferences به نظر بهترین گزینه میاد.
خیلی مهم بود شما بعد از رجیستر شدن کاربر توی sharedpreferences اطلاعات رو تعیین کنید، ترجیحا جوری تعیین کنید که قابل حدس نباشه، دوست داشتید توی دیتابیس و فایل هم ذخیره کنید. موقع چک کردن هم هر سه تا مسیر رو چک کنید اگر همه درست بود اون موقع فعال در نظر بگیرید. کسی که حال داشته باشه بره این سه بخش رو تغییر بده نوش جونش بذار استفاده کنه :)


اتفاقا خودم هم توی فکر ذخیره در فایل بودم و دارم روش کار میکنم


به نظر من بهترین راه ترکیبی از هر دوتا است. یعنی هم تو shared preferences دخیره کنی و هر بار هم چک کنی.
به عنوان نمونه:
وقتی کاربر وارد برنامه می‌شه shared preference رو چک کنید. اگه کاربر ویژه بود امکانات نسخه ویژه رو در اختیارش میزارید و همزمان در پشت صحنه چک کنید که آیا واقعاً ویژه هست یا نه. اگه ویژه بود که هیچ. اگه نبود shared preferences رو تغییر بدید تا دفعه بعد که وارد برنامه میشه به عنوان کاربر عادی باشه.

این کار هم خوبه ولی خب طرف حتما باید به اینترنت وصل باشه

shs1377
دوشنبه 31 شهریور 1393, 13:06 عصر
نیازی به کارایی که بالا گفته شد نیست
شما از کتابخونه زیر استفاده کن. تمام shared preferences رو با AES 256bit کد میکنه و عقل جن هم نمیرسه :لبخند:
برو حالشو ببر
داکیومنت استفادشم کامل بخون. این کتابخونه طلاس یادت نره
https://github.com/scottyab/secure-preferences

خیلی ممنون دنبال این کار بودم نمیدونستم باید دنبال چی بگرد کتابخانه خوبیه فقط یک نکته که هست اونم اینه که 100% امن نیست چون من خودم چند تا بازی که از این کتابخانه استفاده کرده بودن هک کردم:لبخند: ولی خب کار خیلی سختیه بازم ممنون


دخیر کردن کاربر ویژه بودن فقط در shared preferences یک ضعف دیگه داره. اونم اینه که یک نفر می‌تونه با اکانت خودش تو هر چند تا گوشی که خواست برنامه رو ویژه کنه. برای جلوگیری از این بهتره که گهگاهی ویژه بودن از طریق مارکت چک بشه.

میشه یکم بیشتر توضیح بدید خوب متوجه نشدم منظورتون رو

jalil_gh
دوشنبه 31 شهریور 1393, 14:04 عصر
میشه یکم بیشتر توضیح بدید خوب متوجه نشدم منظورتون رو
فرض کنید من با حساب خودم برنامه رو ویژه می‌کنم. این خرید من تو بازار ثبت می‌شه.
بعد میرم رو گوشی دوستم و وارد حسابم تو بازار می‌شم. چون من قبلاً خرید کردم و خریدم ثبت شده، بدون پرداخت هزینه برنامه دوستم رو هم ویژه می‌کنم. چون این ویژه بودن تو خود گوشی ذخیر میشه، اگه من از حسابم خارج هم بشم بازم برنامه ویژه باقی میمونه.
این کار رو رو هرچند تا گوشی که بخام می‌تونم انجام بدم.

shs1377
سه شنبه 01 مهر 1393, 11:44 صبح
فرض کنید من با حساب خودم برنامه رو ویژه می‌کنم. این خرید من تو بازار ثبت می‌شه.
بعد میرم رو گوشی دوستم و وارد حسابم تو بازار می‌شم. چون من قبلاً خرید کردم و خریدم ثبت شده، بدون پرداخت هزینه برنامه دوستم رو هم ویژه می‌کنم. چون این ویژه بودن تو خود گوشی ذخیر میشه، اگه من از حسابم خارج هم بشم بازم برنامه ویژه باقی میمونه.
این کار رو رو هرچند تا گوشی که بخام می‌تونم انجام بدم.
چجوری کاری کنم اگه وارد نشده بود توی بازار مثلا یک توست نشون بده؟

omid.n1990
سه شنبه 01 مهر 1393, 12:44 عصر
همونطور که دوستان گفتند شما علاوه براینکه از sharedprefrences و فایل و ... و ترکیبی از اونها استفاده کنی که به نظرم کفایت میکنه و 90 درصد خریدهاتون واقعی میشن. میتونی کار دیگه ای هم انجام بدی و توی برخی نرم افزارهای ویندوزی هم احتمالا مشابه اش رو دیده باشید. در هربار ورود کاربر به برنامه، توی بازار چک بشه که آیا کاربر ویژه هست یا نه. خوب بحثی که پیش میاد اینه که ممکنه یک کاربر دسترسی همیشگی به اینترنت نداشته باشه! شما میتونی در هربار ورود ابتدا چک کنید که آیا دسترسی به اینترنت وجود داره یا نه. اگر وجود داشت اون موقع بررسی کنه که کاربر ویژه هست یا نه. که اگر ویژه نبود sharedprefrences و فایلتون رو false کنید که کاربر غیرفعال بشه! تو برخی از برنامه های ویندوزی هم مشابه اش رو دیدید که اگر اینترنت وجود نداشته باشه مسئله ای نیست ولی اگر اینترنت باشه به صورت نامحسوس میره چک میکنه که آیا نسخه برنامه معتبر هست یا خیر!

omid.n1990
سه شنبه 01 مهر 1393, 12:47 عصر
یک سوال خودم داشتم، این آنلاین چک کردن مختص به محصولات فروشی میشه. اگر محصولاتمون مصرفی باشه چطور؟ باید چیکار کرد. با در نظر گرفتن این نکته که نمیخوام اطلاعات کاربران و میزان مصرف و خریدشون رو خودم تو سایت خودم نگه ندارم. آیا امکان هست که به کمک بازار این موارد به صورت آنلاین بررسی بشه؟