PDA

View Full Version : بالابردن امنیت یا hash کردن data-url



hamzehsh
شنبه 09 مرداد 1400, 18:35 عصر
سلام و ارادت خدمت همه بزرگان برنامه نویس



چه روشهایی هست که میتونیم جلوی کاربر رو بگیریم تا نتونه id هایی که به button ها اختصاص دادیم رو تغییر بده.

ما توی صفحه یک سری باتن داریم که هر کدوم یک کاری انجام میدهند
و با data-url یا ajax یا روشهای دیگه داریم به یک کنترلر و یک اکشن متد و id که اون موضوع داره دسترسی پیدا میکنیم.
حالا اگر کابر بیاد و id رو تغییر بده (مثلا با اینسپکت المنت) میتونه هر چیزی جاش بگذاره و کارش رو انجام بده. تغییرات بده روی id هایی که اصلا ربطی به موضوع ندارند
یکی دو تا راهکار دیدم ولی هیچکدومشون در واقع بدرد بخور نیستند. مثلا کلید f12 و کلیک راست رو غیر فعال میکردند.


گفتم بیام از تجربه شما استفاده کنم ببینم راهکار مناسبی سراغ دارید؟

مهدی کرامتی
شنبه 09 مرداد 1400, 21:55 عصر
حالا اگر کابر بیاد و id رو تغییر بده (مثلا با اینسپکت المنت) میتونه هر چیزی جاش بگذاره و کارش رو انجام بده. تغییرات بده روی id هایی که اصلا ربطی به موضوع ندارند
موضوع اینه که به چه دلیل کاربر باید چنین کاری انجام بده و مثلا اگر آیدی دکمه btnSave رو تبدیل کنه به btnKolang چه اتفاقی میافته؟ نتیجه متفاوتی می گیره؟
نه. فقط باعث میشه اون صفحه که برای خودش تو براوزر باز شده درست کار نکنه.

اگر نگران Script Injection و XSS هستی، کلی کتابخانه در نوگت هست که بهت کمک می کنه جلوی این نوع تزریق ها رو بگیری، علاوه بر اون خود پردازشگر فرم ASP.NET تا حدود زیادی جلوی اینها رو می گیره.

hamzehsh
یک شنبه 10 مرداد 1400, 08:59 صبح
ممنون از توضحیاتتون استاد بزرگ
با تغییر id باتن ها هیچ اتفاقی نخواهد افتاد ولی با تغییرر id که در کنار url داره ارسال میشه داستان عوض میشه
منظور خود url/id هست
این id اگر تغییر کنه اطلاعاتی که نمایش داده میشه تغییر میکنه و در واقع یک چیز دیگه توی فرم باز میشه
مثال بزنم
من یک جدول دارم هر ردیفش اطلاعات یک شهر رو برمیگردونه
اولیش تهران هست
Cities/21
و به این صورت بهش دسترسی پیدا میکنم
با ajax
حالا 21 رو میکنم 31 و وقتی باتن کلیک میشه اصفهان رو نمایش میده
اتفاق مهمی نیفتاده فقط کاربر شیطنت کرده
شاید بی اهمیت باشه
چون کاربر به اکشن متد و یک تعداد شناسه دسترسی داره و میتونه ویرایشون کنه (خارج از دسترسی هاش نمیتونه بره)
ولی این مورد از نظر یکسری مجوزهای افتا پذیرفته نیست.

دو روش رو پیاده کردم
1- کل url رو تبدیل به یک hash کردم که خیلی کند شد با ajax هم به مشکل خوردم و در واقع خیلی جاها کاربرد نداشت

2- یک url دیگه بهش اضافه کردم. درواقع توکن ساختم
یکسری hash code بهش اضافه کردم که هم id رو بهش پاس میده و هم اون hashcode ها
قابل حدس زدن نیست طول url زیاد شد و تا حدودی هم کندی برطرف شد
سوال من برای راه حل جایگزین هست ساده تر باشه و کوتاه تر