uuid برای مدل های لاراول ۵٫۰

همانطور که می دانید لاراول از خاصیت autoincrements برای شناسه مدل ها استفاده می کند. این روش به علت ساده بودن از سرعت بالایی برخوردار است اما ایرادات اساسی نیز به همراه دارد. مهمترین ایراد این است که به راحتی از روی شناسه یک مدل می توان بصورت تقریبی تعداد رکوردهای موجود در دیتابیس را محاسبه کرد. البته این ایراد امنیتی نیست ولی ممکن است دید کاربر را نسبت به وب سایت ما تغییر دهد. مثلا فرض کنید آیتم های موجود در فروشگاه اینترنتی را در یک جدول داشته باشیم. زمانی که کاربر اعداد کوچک و تک رقمی مربوط به شناسه را در URL های سایت ببیند، متوجه خواهد شد که فروشگاه ما چندان بزرگ نیست. از طرفی، اگر مسائل امنیتی را به درستی رعایت نکرده باشیم، ممکن است کاربر شناسه های موجود در دیتابیس را بصورت دستی تغییر دهد و از این طریق عملیات بر روی داده های دیگر صورت پذیرد.

حال که با اصلی ترین ایرادات استفاده از autoincrements را برای شناسه مدل ها آشنا شدیم، چگونه این ایراد را برطرف کنیم.

[divider]

uuid چیست؟

یکی از بهترین روش های تولید شناسه برای مدل ها استفاده از uuid است. uuid روشی برای تولید اعداد تصادفی و منحصر به فرد است که همگی طول یکسان دارند. به مقادیر زیر توجه کنید:


۴e6485400fb54005a6878e524f5df528

۰۳b9b4399af64f6bad80a6041c8c7072

مقادیر بالا دو نمونه uuid تولید شده است. همانطور که مشاهده می کنید این مقادیر دارای طول یکسان هستند اما ترتیبی در آنها وجود ندارد و کاملا متفاوت از یکدیگرند. اگر از این مقادیر در تولید شناسه استفاده کنیم، احتمال اینکه کاربر بتواند شناسه دستی تولید کند و در URL جایگذاری کند بسیار کم است.

[divider]

uuid برای مدل های لاراول ۵٫۰

برای استفاده از این قابلیت در فریم ورک محبوب لاراول package های متنوعی ساخته شده است. یکی از بهترین این پکیج ها که در نسخه ۵٫۰ مورد ارزیابی قرار گرفته است پکیج laravolt/eloquent-uuid است. نحوه استفاده از این پکیج را می توانید در آدرس زیر ببینید:

http://packalyst.com/packages/package/laravolt/eloquent-uuid

موفق و پیروز باشید…

دیدگاهی در “uuid برای مدل های لاراول ۵٫۰

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *