راکت

تغییر id برای امنیت بیشتر دیتا

5 پاسخ

سلام دوستان
من تو لاراول وقتی میخوام مثلا دیتا وارد دیتابیس کنم این بصورت خودکار id اضافه میشه 1و2و3و ...
و زمانی که میخوام پست نشون بدم مثلا میزنم post/2 و ... اینطوری هر کسی میتونه عدد رو تغییر بده و به پست بعدی دسترسی داشته باشه.

چطوری کاری کنیم که ای دی هر رکورد مثلا 5 رقم باشه و رندم هم باشه
ایا تو لاراول برای این کار مکانیزم خاصی هست یا اینکه بای خودمون دستی تغییرات رو انجام بدیم؟

ثبت پرسش جدید

پاسخ‌ها

5
ali salimi
ali salimi
@salim

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

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

درود بر شما
ای دی رو کاری نداشته باشید، بزارید به همون شکل باشه اما برای نمایش به کاربر می تونید از slug استفاده کنید و حتما باید از middleware استفاده کنید.
توی آموزش های لارول راکت هم دقیقا همه این موارد توضیح داده شده.

شاید پاسخ شما همین‌جا باشد

وحید
وحید
@forughi.vahid

تخصص: Fullstack

@moradiemails
میتونید از فیلد دیگه ای برای این کار استفاده کنید ، توجه کنید که این فیلد حتما باید یونیک باشه ، برای بهینه تر بودن سئو ، بهتره از slug استفاده کنید ، برای تولید اسلاگ هم پکیج هایی هست که با سرچ میبینیدشون ، در آخر با هر کدام از این ها که خواستید کار کنید لازمه که route model binding انجام بدید که موقع بایند کردن $post به درستی پر بشه .

مرادی
مرادی
@moradiemails

تخصص: توسعه دهنده لاراول و برنامه نویس اندروید

@salim
@forughi.vahid @hekmati
ممنون دوستان به خاطر جواب هاتون
بنده هم از slug که گفتید استفاده میکنم
و هم با توجه به این مقاله برای امنیت بیشتر کنترل پنل
https://medium.com/@ikrisnaw/laravel-story-replace-auto-increment-id-with-uuid-8f555bf6f3f
از UUID استفاده کردم
https://github.com/ramsey/uuid

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

درود بر شما
@moradiemails

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

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

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