آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

امنیت داده های مستقر در سورس پس از Obfuscate کردن برنامه

طاهر  10 سال پیش  6 سال پیش
+1 0

بهترین راهکار به جهت Obfuscated کردن داده های حساس به چه صورت هست ؟

داده هایی مثل متغیرهایی که اطلاعات حساس رو نگه داری می کنند.

 

 برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  10 سال پیش
0 0

اگه منظورتون پایگاه داده هست ، میشه SQLITE رو رمزگزاری کرد ، در رابطه باهاش سرچ کنید ، اگر نه هم بیشتر توضیح بدید !

ولی یکی از روش های دیگه هم رعایت دقیق وراثت هست که private کردن ها توش تاثیره به سزایی داره

0 0
در مورد String ها چه طور (6 سال پیش)
پاسخ به سوال 
طاهر  10 سال پیش
0 0

نه منظورم اینه فرض کنید شما قراره از یه سرور اطلاعات رو دریافت کنید .

آدرس این سرور رو هم نمی خواید کسی بتونه در اختیار بگیره .

چطور باید برنامه رو Obfuscated کرد که این داده ها پس از  revers کردن قابل دسترسی نباشه .

پاسخ به سوال 
uncocoder  10 سال پیش
0 0

دوستمون پاسخ کاملی دادن و همانطور که در پاسخ بالا اشاره شد، حفظ کردن امنیت سرور برای حفاظت از اطلاعات کافیست. اما نکته بسیار مهم تر که ایشون یادش رفته احتمالاً بگه این هست که داده ها قابل شنود هستند. مثلاً اگر کسی یک برنامه نویسه که بتونه داده ها رو شنود کنه ( در اندروید ) یا به عبارتی یک data sniffer بنویسه، اونوقت اگر حتی Username و Password به سرور ارسال بشه، کاملاً مشخص میشه به کدوم لینک با چه ساختاری، چه اطلاعاتی ارسال شده و کاملاً حفره امنیتی نرم افزار و حتی سایت شما خواهد شد.

پس بهتر هست که تمامی داده های ارسالی و دریافت از کلاینت به سرور ( و بالعکس ) به نحوی Secure بشه. این امنیت می تونه با الگوریتم هایی مثل AES برقرار بشه که تقریباً غیر قابل شکستن هست. البته AES به KEY, IV نیاز داره که اگر کسی بدونه، می تونه باز هم داده های Sniff شده رو بازیابی کنه اما اگر مثلاً KEY خود پسورد باشه، اونوقت دیگه هیچ کاریش نمیشه کرد و هیچ کس نمی تونه Crack بکنه.

اما در خصوص سایر اطلاعاتی که شاید Server Side نباشه و مثلاً پسورد یک فایل رو می خواید داخل Source قرار بدید، یک راهش این هست که یک الگوریتم پیچیده برای تولید اون قفل بنویسید که راههای بسیار بسیار زیادی داره.

در کل خیلی سخت نگیرید و بجای امنیت بالاتر به فکر توسعه سریعتر باشید. امنیت در لحظه های آخر قابل پیاده سازی است.

0 0
در صورت امکان توضیحات جامع تری در خصوص Obfuscated کردن و نحوه برنامه نویسی شی گرایی برای دریافت نتیجه بهتر ارائه کنید و یا لینک مطالب از سایتهای دیگه که مورد تایید هست رو قرار بدید . با تشکر (10 سال پیش)
پاسخ به سوال 
طاهر  10 سال پیش
0 0

با تشکر از همه دوستانی که در بحث شرکت کردن .

اول از همه باید ذکر کنم که منظور بنده امنیت سمت سرور نبود چون امن کردن کدهای سمت سرور به راحتی قابل انجام هست و مشکلی در این زمینه ندارم .

من مثال آدرس سرور رو زدم که خیلی قابل لمس باشه و منظورم هر نوع داده ی ثابتی هست که لازمه بگونه ای امن بشه که دیگران بعد از  revers کردن نتونن به اطلاعات اون دسترسی داشته باشن .

درصورتیکه بخوایم پسورد و اطلاعاتی که از کاربر دریافت میکنیم  رو امن کنیم همونطور که استاد گفتن با استفاده از الگوریتم میشه اینکار رو انجام داد.

ولی وقتی قراره روی یه داده ثابت مخصوص برنامه اینکار انجام بشه در صورت رمزنگاری شدن باز هم فکر نکنم مشکل حل بشه و کافیه از اطلاعات رمزنگاری شده  در برنامه استفاده کرد و برنامه به کار خودش ادامه میده

0 0
بنده نظرم اینه که کار کردن روی امنیت خوده اپلیکیشن ، وقت گذاشتن بیهوده است ، مگر اینکه طبق پست بالا ، استاد توی پاسخشون نظرم رو تغییر بدن :| (10 سال پیش)
0 0
این حرف شما زمانی درست خواهد بود که برای برنامه ای که طراحی میکنید دسترسی به اینترنت رو لحاظ کرده باشید و برنامه شما برای کار نیاز به دسترسی به اینترنت داشته باشه . ولی وقتی یه برنامه ای طراحی میشه که بصورت افلاین کار میکنه و نیاززی به اینترنت نداره امنیت خود اپلیکیشن هم معنا پیدا میکنه . (10 سال پیش)
0 0
خوب در اینصورت ، داده های آفلاین ، دیتابیس برنامه هست ، که میشه SQLITE رو کد کرد (10 سال پیش)
پاسخ به سوال 
ehm  9 سال پیش
0 0

سلام

میدونم تاپیک قدیمیه ولی ما تازه کاریم و ابهاماتمون هم بسیار زیاد !

سوال آقای طاهر سوال من هم هست.

ببینید اصلا کاری به ارتباط آنلاین با سرور نداریم. شما فرض کنید یه فایل txt ساده یا یک فایل html داریم که در پوشه assets قرار داره که ما نمیخوایم محتواش دست کسی بیفته. راه حل تامین امنیت برای این مورد چیه؟

راهی که به ذهن خودم رسیده اینه :

ذخیره کردن فایل با فرمت اختصاصی خودمون (طبق روشی که استاد در بخش 19 دادن) و سپس قرار دادن فایل اختصاصی ، در داخل پوشه ی assets پروژه اصلی و خواندن محتویاتش.

طبق گفته ی استاد ، نکته ی مهم اینه که اگر موقع نوشتن روی فایل ، مثلا ابتدا یک int بنویسیم و سپس یک long و سپس یک UTF ، موقع خواندن هم باید دقیقا به همین ترتیب ابتدا یک int بخونیم و سپس یک long و سپس یک UTF ، در غیر اینصورت برنامه کرش میکنه.

در اینجا استاد میگن که چون ترتیب نوشتن روی فایل رو فقط برنامه نویس میدونه بنابراین فقط هم خودش اطلاع داره که موقع خواندن فایل باید به چه ترتیبی بخونه تا منجر به کرش نشه. بنابراین ایشون نتیجه گرفتن که این باعث ایجاد یک نوع امنیت میشه چون کسی غیر از برنامه نویس اصلی نمیتونه اطلاعات رو به همون ترتیبی که نوشته شده بخونه.

ولی !

مشکل اصلی (طبق دانسته های من تا اینجا) اینه که دوستان هکر یا فضول میتونن با Reverse کردن پروژه ، به راحتی ببینن که ما در کدمون به چه ترتیبی از داخل فایل-فرمت اختصاصی مون مطالب رو میخونیم و به راحتی میتونن فایل ما رو داخل پروژه ی دیگری بذارن و طبق همون ترتیبی که در سورس ما پیدا کردن ، به همون ترتیب هم بخونن و در نتیجه این فایل-فرمت اختصاصی ، عملا هیچ سطح امنیتی برای ما به ارمغان نیاورده و هر کسی میتونه ازش استفاده کنه.

دوست دارم نظر دوستان رو در این مورد بدونم. آیا برداشت من از این موضوع درسته؟؟؟

0 0
به نظرم در برنامه های معمولی زیاد نباید روی امنیت داده ها و برنامه وقت بزارید چون ارزشش رو نداره . مگر اینکه اطلاعات واقعا حساس باشند و نباید دست کسی بیفته که در اون صورت نیاز به امنیت داده ها محسوس خواهد بود (9 سال پیش)
+2 0
راه های مختلفی برای اینکار هست ولی شما هرکاری کنی بازم میشه بدست آوردش فایل ها رو مثلا اگر از زیپ استفاده کنی موقع باز کردن میشه برداشت اگر دیتابیس رو قفل کنید کلیدش در دسترس هست . تنها یک راه موجود داره واون هم قفل گذاری داده ها با استفاده از یک کلید که به صورت ریل تایم ساخته میشه که اونم ممکنه الگوریتمتون رو بزنن . نتیجه حاصله از این بحث => بهتره اگر دیتای مهمی در برنامه استفاده میکنید در سرور خودتون نگه دارید و هیچ اطلاعاتی رو در اختیار کلاینت بدون داشتن کلید مخصوص نذارید و همینطور نمایش اطلاعات رو محدود کنید . (9 سال پیش)
0 0
در زمینه تامین امنیت برنامه، (مثل هر موضوع دیگری) قانون 80-20 کاملا صادق است. مثلا Obfuscat کردن ساده، می تواند تا حدود زیادی جلوی سوء استفاده ها را بگیرد. (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .