رفتن به مطلب

ارسال‌های توصیه شده

3.jpg

برای دریافت سورس و کتابخانه های موردنیاز b4a، در کانال ما عضو شوید
کانال هرروز یا یک روز درمیون با سورس های رایگان b4a بروزرسانی میشود
https://t.me/programmingwithb4a
https://splus.ir/basic4android_langueg
https://eitaa.com/basic4androidlan

💣 استفاده سهوی از HardCoding

🔐 در امنیت اطلاعات، واژه‌ی "hardcoded" (هاردکد شده) به این معناست که اطلاعات حساس یا مقادیر مشخصی به‌صورت ثابت و مستقیم در کد برنامه نوشته شده‌اند، به جای اینکه از منابع امن‌تری مانند فایل‌های پیکربندی رمزگذاری‌شده، محیط اجرا (environment variables) یا سیستم‌های مدیریت کلید استفاده شوند.

✳️ به طور خلاصه بخوام بگم، یعنی این که برنامه نویس بیاید و مقادیر را طوری بنویسد که به راحتی قابل خواندن باشد. مثلا رمز عبورها و کلید های اصلی بعد از مهندسی معکوس پروژه، به راحتی قابل دسترس باشند.

🏮 به طور کلی اطلاعاتی که نباید hardcoded باشند:

رمزهای عبور
کلیدهای API
توکن‌های دسترسی (Access Tokens)
آدرس سرورها یا پایگاه‌ داده‌ها
اطلاعات شخصی کاربران

در این موارد باید دقت کنید که مقادیرشان به راحتی قابل دسترس نباشند.

اما چگونه؟!
با مثال زیر متوجه این چگونگی میشوید.

🌐 مثال در بیسیک فور اندروید
🟥 کد ناامن

Sub Process_Globals
    Private serverUrl As String = "https://myserver.com/api"
    Private apiKey As String = "12345-ABCDE-SECRET-KEY"
End Sub

Sub SendRequest
    Dim job As HttpJob
    job.Initialize("Job1", Me)
    job.Download2(serverUrl, Array As String("apikey", apiKey))
End Sub

 در اینجا، apiKey و serverUrl به‌صورت hardcoded توی کد نوشته شدن. اگه کسی فایل APK رو decompile کنه، به‌راحتی می‌تونه این اطلاعات رو استخراج کنه.

حالا اگه همینو بخوایم امنش کنیم به این شکل درمیاد:

Sub Process_Globals
    Private serverUrl As String = "https://myserver.com/api"
    Private apiKey As String
End Sub

Sub Globals
End Sub

Sub Activity_Create(FirstTime As Boolean)
    If File.Exists(File.DirInternal, "config.dat") Then
        Dim encrypted As String = File.ReadString(File.DirInternal, "config.dat")
        apiKey = DecryptKey(encrypted)
    Else
        Log("API key file not found!")
        ToastMessageShow("Configuration error", True)
        Return
    End If

    SendRequest
End Sub

Sub SendRequest
    Dim job As HttpJob
    job.Initialize("Job1", Me)
    job.Download2(serverUrl, Array As String("apikey", apiKey))
End Sub

Sub DecryptKey(encrypted As String) As String
    Dim su As StringUtils
    Dim data() As Byte = su.DecodeBase64(encrypted)
    Return BytesToString(data, 0, data.Length, "UTF8")
End Sub

🔰 حالا چند نکته امنیتی که اگر برنامه نویس رعایت کنه، بهتره:

برای رمزنگاری کلید در سمت توسعه‌دهنده، از ابزارهایی مثل Base64 encoder یا الگوریتم‌های AES استفاده کن.
Base64 فقط پنهان‌سازی هست نه رمزنگاری واقعی! برای تولید نسخه نهایی اپ، بهتره از کتابخانه رمزنگاری قوی مثل Encryption در B4A استفاده کنی.
محل ذخیره‌سازی (File.DirInternal) خصوصی برنامه‌ست و کاربران عادی نمی‌تونن بهش دسترسی داشته باشن، ولی برای امنیت واقعی بهتره با رمزگذاری همراه باشه.

تهیه و تنظیم   
مرتضی صباغی  
MR.B4A
 
🛑 محصولات 
MR.B4A
پرژوژت چه قدر  می ارزه؟
https://zarinp.al/701185
ضبط صدا
https://zarinp.al/602356
ابزارهای انیمیشنی
https://zarinp.al/582228
کتاب پیشرفته
https://zarinp.al/581211
کیوآرکد اسکنر
https://zarinp.al/724103

اپلیکیشن ها
پرژوژت چه قدر  می ارزه؟
https://cafebazaar.ir/app/ir.project.cost.estimation.mr.b4a
شماره ساز حرفه ای
https://cafebazaar.ir/app/ir.number.generator.mr.b4a
 
#b4a #basic4android #source_code #programming #android #b4x #MR_B4A 
#security_in_project

#بیسیک_فور_اندروید #سورس_کد #برنامه_نویسی #اندروید #برنامه_نویسی_اندروید #امنیت_در_پروژه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
  • اضافه کردن...