الیاس سخاوتی نیا
5 سال پیش توسط الیاس سخاوتی نیا مطرح شد
8 پاسخ

جلوگیری از حذف و ویرایش ناخواسته با متد GET در PHP

سلام
من خیلی وقت پیش ها با php یه پنلی نوشتم و url برای ویرایش محصول اینجوری بوده :

domain.com/index.php?edit_product=17

یا برای حذف محصول اینجوری بوده

domain.com/index.php?delete_product=17

اون موقع با لاراول آشنا نبودم
اصلا با php هم درست و حسابی آشنا نبودم ، هنوزم نیستم 😁
میدونم باید با متد های put و delete و crf توکن و... کار میکردم ولی خب اون موقع همچین کاری نکردم چون نمیدونستم 😐
فقط موقع ورود کاربر اومدم همچین کاری کردم و آیدی کاربر رو تو سشن ذخیره کردم

$id = $_session['user_logged_in'];

و دیگه با همین آیدی مقالات کاربر رو گرفتم و با روت های بالایی که گفتم عملیات ویرایش و حذف انجام میشده
حالا به مشکلی خوردم که نگم هم خودتون فهمیدین دیگه 😐🤦‍♂️
هر کاربری توی url یه آیدی الکی وارد کنه میتونه کالایی رو ویرایش یا حذف کنه
دیگه یه جوری هم هست نمیشه بشینم دوباره 0 تا 100 با لاراول بنویسم.
ممنون میشم یه راهنمایی بکنید چیکار کنم واسه این مورد که اگه محصول مال خود کاربر نبود ویرایش نتونه بکنه
تشکر
@hesammousavi @ali.bayat @juza66 @rezajashnsaz0011


ثبت پرسش جدید
coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش آپدیت شد
1

سلام، ینی اون مقاله مال کاربر هست؟ ینی کلید خارجی توی جدولش قرار دادین؟ اگه اره که اون مقاله 17 رو به فرض میگیرین چک میکنید که مقاله مال همین کاربر هست، و اگه بود اجازه ادیت و حذف رو بدین


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
0

@coaradsupp

بله توی جدول محصول آیدی کاربر هست و میشه چک کرد
ولی بعضی جداول وابسته آیدی کاربر داخلش نیس
برای اونا راه حلی هست؟!


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش مطرح شد
0

متوجه نشدم منظور از جداول وابسته چیه، مثال بزنید


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
0

@coaradsupp
مثلا یه جدول وابسته بین محصول و گالری تصاویر محصول
توی گالری تصویر آیدی محصول هست ولی آیدی کاربر نیس
اونجا هم فکر کنم دوباره باید کوئری بزنم برگردم به جدول محصول اگه مال خود کاربر بود عملیات ویرایش روی گالری انجام بشه؟ 🤔


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
1

راه درستش اینه که از متد delete استفاده کنی بجای get
و csrf بذاری
.
ولی اگه میخوای همینجوری پیش بری هی باید دستی چک کنی ببینی کسی که میخواد یه کاری انجام بده همونیه که مثلا مقاله گذاشته یا نه


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 5 سال پیش آپدیت شد
1

بله، به هرحال باید شما به ایدی کاربر برسید که برسی بشه این مال کاربر هست یا خیر، و ادامه ماجرا، که این کاربر با الوکوئنت لاراول به راحتی انجام میشه ولی با php خام با دردسر فراوان :)


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

به نظرم از متد POST استفاده کنید برای این جور کارها


smart
@smartgarden2016 5 سال پیش مطرح شد
1

سلام. همونطور که دوستان گفتن و خودتون هم میدونید استفاده از get برای همه این کارها اشتباهه.
حالا اگر میخواید به همین روش پیش برید یه روش اینه:
هرکاری که میخواید انجام بدین اول id محصولات کاربر رو از دیتابیس بخونید و توی یه آرایه قرار بدید.
حالا چه بخواید محصول رو مدیریت یا حذف کنید چک میکنید ببینید id اون محصول توی آرایه هست یا نه.
بخش گالری تصویر رو هم اگر بخواید ویرایش کنید بازهم id محصول رو چک میکنید که تو آرایه هست یا نه.
توی هر دو مورد اگر id توی آرایه وجود داشت یعنی محصول یا گالری تصویر مربوط به اون کاربر هست و میتونه ویرایش و حذف کنه.


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

ورود یا ثبت‌نام