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

امنیت برنامه در برابر اسپمر ها

مجتبی یگانه  12 سال پیش  12 سال پیش
+6 0

سلام

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

در برنامه ، ما آدرس سرور را در " " قرار میدیم ، هر چیزکه اینطور وارد بشه ، مبهم نمیشه ، پس در نتیجه ، اگر کسی برنامه رو Decompile کنه ، آدرس سرور را داره ! خوب مثلا

site.com /service.php?Type=read

دوباره مقدار هایی که بصورت nameValuePair میفرستیم ها از جنس رشته هستند و میشه فهمید مثلا name , lastname , age هست

خوب حالا خیلی راحت میشه برای Down کردن سرور تلاش کرد و داده های اسپم در سرور وارد کرد ! :(

یکی از راه حل ها برای این کار SignKey هست ، مثلا اگه مقداری که فرستاده شده ، 1010 بود ، کار را در php انجام بدیدم ، ولی بازم ، signkey در برنامه قابل کشف هست :(

- راه حلی که من دنبالشم ، مقداری هست که بعد دیکامپایل ، مشخص نباشه ، چی بوده !

یا اگه شما ایده ی دیگه ای دارید بفرمائید :)

0 0
منم همیشه دغدغه ام امنیت String ها در برنامه بوده و هست! خوشحال میشم کسی یه راه اساسی پیشنهاد کنه. البته یه راه پیچوندن کد ها توی کلاسای مختلفه. مثلا متعییرو از این کلاس بخونی که خودش از اون کلاس خونده شده یا نصفش از این وره نصفش از اون وره و یا آدرسو یه جورایی مبهم کنیم و بعد با replace آدرس جدید رو استخراج کنیم و ... . ولی خب اگه یه یارویی خیلی حرفه ای باشه بازم میتونه بفهمه که چی به چی شده. (12 سال پیش)
0 0
دارم روش کار میکنم ، الان یکم داغونم ، اگه به نتیجه رسیدم حتما همینجا جواب میدم (12 سال پیش)
0 0
منم همین فکر صادق خان به فکرم میرسه (الگوریتم پیچش) (12 سال پیش)
0 0
سلام والا من یه برنامه که نوشتم اینجوری استفاده کردم اومدم اول ادرسمو اسرینگ کردمش توی string.xml لینک بعد توی برنامه گفتم برو از قسمت استرینگ ها بخونش لینک coding String result = Webservice.readUrl("" + G.context.getResources().getString(R.string.UrL1) + "", null); (12 سال پیش)
0 0
آقا ایمان روش شما هم قابل نفوذ هست ، روشی که من خودم پیدا کردم ، روش تبادل کلید یا key exchange هست ، وقتی نتیجه نهایی رو بگیرم اعلام میکنم (12 سال پیش)
0 0
دوستانی که مشترک این سوال هستند ، به این سوال مراجعه کنند ! لینک (12 سال پیش)
0 0
آدرس را میتونیم کد کنیم ولی بعد اگر sniff کنند در میاد. شما میتونی یک سرور یا سرویس میانی قرار بدی که اون دست به دست کنه اطلاعاتو (12 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
hamidd  12 سال پیش
+2 0

توی پرداخت درون برنامه ای بازار، بازار پیشنهاد میده که از کلید عمومی در برنامه محافظت کنید.(تا میتونید مخفی اش کنید، کدگذاری اش کنید،  زمان اجرا بسازیدش)
همون طور که می دونید کلید عمومی یک رشته هست مثل همین آدرس سرور در برنامه ی شما.
البته کلید عمومی برنامه چیزی نیست که هکرها با فهمیدنش، از این کلید در برنامه هایشان استفاده کنند(سو استفاده کنند)، بلکه اگه هکرها بتونن بفهمن که کلید عمومی را کجای برنامه تان قرار داده اید می تونن کلید عمومی یکی از برنامه هایشان که از پرداخت درون برنامه ای بازار استفاده میکنه رو به جای کلید عمومی برنامه ی شما در برنامه ی شما جایگزین کنن (نام پکیج برنامه را هم باید تغییر بدن و sku رو هم باید تغییر بدن) و برنامه تغییر داده ی شما را در اینترنت منتشر کنن تا پول به حساب برنامه ی خودشون بره.(توی بازار نمیتونن منتشر کنن چون ضایع میشن :دی  )
بازار این پیشنهادات رو  به توسعه دهندگان  برای محافظت از کلید عمومی که یک رشته هست رو میده :

از کلید عمومی‌ بازار محافظت کنید

برای محافظت کلید عمومی‌ از کاربران مخرب یا هکرها، سعی کنید آن را به صورت رشتهٔ ثابت درون کد قرار ندهید. در عوض، رشته را در زمان اجرا بسازید یا از جابجایی‌ بیت‌ها (مانند XOR با چند رشتهٔ دیگر) برای پنهان کردن کلید اصلی‌ استفاده کنید. کلید خودش اطلاعات محرمانه نیست، اما شما نمی‌خواهید کار را برای هکر‌ها برای جایگزینی کلید عمومی‌ با کلیدی دیگر آسان کنید.

کدهایتان را obfuscate کنید

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

به علاوه، برای مبهم‌سازی کد پرداخت درون برنامه ای‌ به شما تکنیک‌های زیر را پیشنهاد می‌دهیم:

  • رشته‌ها را در زمان اجرا بسازید.
  • از Java Reflection برای فراخوانی متدها استفاده کنید.

استفاده از این تکنیک‌ها تعداد مهاجمین به برنامهٔ شما را کاهش می‌دهد و به تبع باعث افزایش امنیت پیاده‌سازی پرداخت درون برنامه‌ای می‌شود.


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