تکنیک درست پاک کردن دیتا

پرسیده شده
فعالیت 1481 روز پیش
دیده شده 935 بار
0

باسلام استاد یکبار یه عزیزی بهم گفت وقتی میخوای چیزیو پاک کنی(یا اپدیت کنی) با روش تگ a و کوئری استرینگش پاک نکن و حتما اون چیزی که قرار پاک بکنه(در این جا یه علامت ضربدر گذاشتید شما) رو از طریق فرم و متد پست (یا دلیت یا اپدیت) کارتو هندل کن گفت اگر لینک باشه یه سری روبات ها میان روی لینکا کلیک میکنند و ممکنه دیتاتو با مشکل مواجه کنند درسته این حرف؟؟؟؟

فایل پیوست

علی حبیبی
علی حبیبی

27 فروردین 99

3

مورد تایید استاد

حذف شده

سلام

عملیاتی مثل حذف و بروزرسانی که جزء عملیات حساسی هستند باید حتما با متدهای POST انجام بشوند و حتی باید از CSRT TOKEN ها هم باید استفاده بشود ( توضیحی درباره CSRF و حملات ناشی از آن ) ، حتی در فریم ورک مثل لاراول شما برای حذف یک چیزی از دیتابیس باید از متد DELETE استفاده کنید یا برای بروزرسانی کردن باید از متد PUT یا PATCH استفاده کنید.

فایل پیوست

امیر صالحی

توسط

امیر صالحی

28 فروردین 99

3

مورد تایید استاد

حذف شده

سلام.

اول تفاوت های GET و POST رو یک نگاهی بندازید.

در مورد سناریوی delete هم که گفتید، از هر دو روش میشه استفاده کرد ولی بهتر هست بصورت post انجام بشه.

چون در متد get آدرس ها قابل ایندکس شدن و کش شدن و بوکمارک شدن و حتی کپی کردن و انتقال اونها وجود داره.

قاعدتاً تمام عملیات هایی چون create و update و delete باید مجوزی وجود داشته باشه واسه کاربر.

پس اینکه بگیم ربات ها میتونن روی delete کلیک کنن، اینجوری نیست، اگر مجوز delete وجود داشته باشه، برای ربات فرقی نمیکنه متد درخواستی، get باشه یا post چون توسط ربات میشه request ای با متد post ارسال کرد.

در مورد get بالاتر مثال زدم که امکان کپی کردن لینک delete وجود داره و همونطور دوستمون گفتن احتمال حمله csrf ممکنه بوجود بیاد.

برای مثال من مجوز delete رو دارم، کاربری email ای واسم ارسال میکنه و میگه روی لینکی کلیک کنم و من ناخواسته روی لینکی کلیک میکنم که مربوط به delete روی سایت هست و چون در سایت login هستم و مجوز delete هم دارم این اتفاق میوفته.

پس در حالت کلی، هم ریکوئست get قابل ارسال هست، هم ریکوئست بصورت post.

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

در ضمن ریکوئست های post هم قابل تغییر و قابل دسترسی هستن(HTTP Parameter Pollution)، کافیه به هدر ارسالی توسط مروگر نگاه بندازید.

 

* نکته آخر: اگر محتوای درخواست ها و پاسخ ها برای سایت شما اهمیت داره باید از ssl روی سایت استفاده کرد تا از زمان request تا response، همه چیز کدگذاری و قفل بشه و اگر داده ای دزدیده هم شد، قابل دسترسی و دستکاری نباشه.

 

فایل پیوست

محسن موحد

توسط

محسن موحد

28 فروردین 99