رفتن به مطلب
  • 0

ذخیره سازی سکه در سرور


امیرحسین قاسمی

سوال

سلام

کاربر توی برنامه من با هر بار مشاهده تبلیغ یا گردونه تعدادی سکه میگیره که باید این سکه ها توی هاست و دیتابیس ذخیره بشه.

حالا مشکلی که هست اینه که کاربر میتونه لینک رو توی کروم وارد کنه و از طریق GET برای خودش سکه واریز کنه. حتی اگه با POST هم ارسال سکه رو انجام بدیم بازم میتونه با B4A راحت بیاد عملیات رو شبیه سازی کنه و برای خودش سکه ارسال کنه.

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

چطوری این مشکل رو باید حل کنیم؟

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

6 پاسخ به این سوال تاکنون داده شده است

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

در ۱۴۰۱/۴/۷ در ۲۲:۳۶، امیرحسین قاسمی گفته است:

منظورتون از پیاده سازی منطق توی سرور چیه؟ منظورتون اینه طرف ریکوئست بده اون عدد از سرور به مقدار سکه قبلی اضافه بشه و هیچ عددی از کلاینت ارسال نشه؟ خب اونوقت هم باز ریکوئست میزنن مثلا من توی سرور جایزه رو 100 تا سکه تعریف کردم و 100 سکه اضافه میشه براشون بدون اینکه تبلیغ نگاه کنن و پشت سر هم ریکوئست میفرستن.

آخه تنها تبلیغ نیست! گردونه هم هست و حتی کنار تپسل، ادیوری و تبلیغات شخصی هم پیاده می کنم.

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

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

با سلام 

اصلا این کاری که شما میگی چیز خاصی نداره ، مقدار سکه ای که میخوای بفرستی برای سرور از طریق نرم افزارو با یه دستور ساده UPDATE از طریق php بزن بره 

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

در ۱۴۰۱/۴/۷ در ۰۴:۲۶، mehrad گفته است:

با سلام 

اصلا این کاری که شما میگی چیز خاصی نداره ، مقدار سکه ای که میخوای بفرستی برای سرور از طریق نرم افزارو با یه دستور ساده UPDATE از طریق php بزن بره 

دوست عزیز اصلا بحث این نیست من میگم یه هکر پیدا میشه به php من ریکوئست میزنه و برای خودش مثلا هزاران سکه ثبت می کنه. میگم چطوری باید جلوی این رو بگیریم!

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

سلام و درود. با این روشی که شما برای سکه دادن دارید به هیچ عنوان نمیتونید جلوشو بگیرید.

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

هم تپسل و هم گوگل امکان صحت سنجی تبلیغاتو دارن و احتمالا همه سرویسها دارن. از اونها استفاده کنید

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

در ۱۴۰۱/۴/۷ در ۱۰:۲۱، محمدرضا شاهپیری گفته است:

سلام و درود. با این روشی که شما برای سکه دادن دارید به هیچ عنوان نمیتونید جلوشو بگیرید.

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

هم تپسل و هم گوگل امکان صحت سنجی تبلیغاتو دارن و احتمالا همه سرویسها دارن. از اونها استفاده کنید

منظورتون از پیاده سازی منطق توی سرور چیه؟ منظورتون اینه طرف ریکوئست بده اون عدد از سرور به مقدار سکه قبلی اضافه بشه و هیچ عددی از کلاینت ارسال نشه؟ خب اونوقت هم باز ریکوئست میزنن مثلا من توی سرور جایزه رو 100 تا سکه تعریف کردم و 100 سکه اضافه میشه براشون بدون اینکه تبلیغ نگاه کنن و پشت سر هم ریکوئست میفرستن.

آخه تنها تبلیغ نیست! گردونه هم هست و حتی کنار تپسل، ادیوری و تبلیغات شخصی هم پیاده می کنم.

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

سلام وقت بخیر 

برای سخت تر کردن کار کسی که میخواد دور بزنه و هک کنه یه سری موارد رو میگم امیدوارم به درتون بخوره (شاید استاندارد هم نباشه)

1. اصلا اجازه ندید به کدتون دسترسی پیدا کنه (روش های مبهم سازی اللخصوص گزینه بهم ریختگی متغییر رو در حالت خروجی فعال کنید)

حالت prograd یا همچین چیزی فعال کنید که توبیسیک نمی دونم کجاست!

همیشه تو ورود برنامه کی توسعه دهندگی و پکیج نیم و اسم برنامه رو چک کنید اگر تغییر یافت بود بدون این که پیامی بدید خروج کنید از اپ

از واژه coin یا هر عبارتی که باعث میشه جستجو فرد داخل کدتون راحت تر بشه استفاده نکنید عبارت پیچیده استفاده کنید ولی ضایع نباشه

داده های ذخیره سازی تون رو رمزگزاری کنید

مثلا اگر به کاربر میگید این ویدیو ببین 225 سکه بهت میدم به هیچ عنوان تو کدتون عدد 225 رو نیارید بلکه به صورت استاتیک رمزگزاری کنید و مثلا فقط عبارت "dsfdsfewwoii223ii" سر توابع تون باشه که به معنی عدد 225 هست 

برای لینک ها که به هاست میفرستید رمزگزاری به صورت بالا حتما باشه و مثلا ننوسید تو سورس www.servername.com

تعداد ورود کاربر کنترل کنید و مثلا اگر دیدید کلا کاربر 6 بار به برنامه ورود کرده اما یک دفعه بالا تر از 999999 سکه دریافت کرده خروج کنید از اپ چون معلوم که کاربر بازی رو هک کرده و به هیچ عنوان پیام ندید که مثلا بازی هک کردید و خروج شد چون سرچ میکنه اصلاح میکنه 

استفاده از متغییر های استرینگ امنیت بیشتر داره چون احتمال وجود هر چیزی بیشتر داخلشو باز گردانیش هم سخته تر 

 

 

در رابطه با ارتباط با سرور :

 

سعی کنید مبهم سازی کنید 

مثلا هنگام پست کردن عدد رو انتقال ندید مثلا 225 سکه اضافه کن بلکه به صورت رمز گزاری شده انتقال بدید

چند تا پارامتر مختلف بفرستید یک پارامتر نباشه 

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

 

همه این کار های که گفتم فقط سخت تر میکنه کار هکر رو 

و ممکنه باگ های هم به برنامه اضافه کنه که خیلی مراقب باشید 

و در مورد روش های استاندارد دیگر تحقیق کنید 

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

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

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

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