درج حجم اطلاعات زیاد در جدول کاربران لاراول

1394-04-24

یکی از شیوه‌های امنیتی برای حفاظت از اطلاعات شخصی کاربران، نگهداری رمزهای آنان به صورت کدشده است. در گذشته الگوریتم‌هایی مانند md5 و sha1 برای این منظور استفاده می‌شدند.

درج حجم اطلاعات زیاد در جدول کاربران لاراول

یکی از شیوه‌های امنیتی برای حفاظت از اطلاعات شخصی کاربران، نگهداری رمزهای آنان به صورت کدشده است. در گذشته الگوریتم‌هایی مانند md5 و sha1 برای این منظور استفاده می‌شدند.

با افزایش سرعت و قدرت سخت‌افزارها، این الگوریتم‌ها جای خود را به الگوریتم‌هایی پیچیده‌تر دادند تا امکان بازیابی رمزها با استفاده از آزمون و خطا دشوارتر از گذشته شود.

در فریم‌ورک لاراول به صورت پیش‌فرض از الگوریتم Bcrypt استفاده می‌شود که الگوریتمی ایمن و با توجه به قدرت سخت‌افزارهای امروزی، تقریبا غیرقابل بازیابی است.

ربات های فارسی تلگرام | ربات فارسی سخن یاب ، فال حافظ ، سخن بزرگان ، استخاره  و قرآن| روبات قیمت ارز ، سکه ، دلار

دستیابی به این امنیت بالا، معایبی نیز در کنار خود دارد. یکی از این معایب، هنگامی است که می‌خواهیم، فهرستی طولانی از کاربران را در بانک اطلاعاتی ذخیره کنید و رمزهای هر کاربر را نیز با استفاده از الگوریتم سنگین Bcrypt کدگذاری یا Hash کنیم.

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

در ادامه قصد داریم یک راه حل برای این مشکل معرفی کنیم که علاوه بر افزایش سرعت، امنیت کاربران را نیز در خطر قرار ندهیم.

برای حل مشکل بالا، در هنگام رمزگزاری گذرواژه‌ها، به جای استفاده از الگوریتم Bcrypt از الگوریتم قدیمی sha1 که سرعت زیادی دارد و نسبت به md5 نیز امنیت بیشتری برای ما فراهم می‌کند استفاده می‌کنیم.

پس از انجام این کار لازم است تا در بخش ورود به سایت نیز تغییراتی اعمال کنیم. چنانچه ورود کاربر موفقیت‌آمیز نباشد، این احتمال وجود دارد که رمز او هنوز به Bcrypt تبدیل نشده باشد. بنابراین، یک مرحله به الگوریتم قبلی اضافه می‌کنیم تا در صورت عدم موفقیت ورود، رمز کاربر به صورت sha1 نیز با پایگاه داده مقایسه شود، این کار با یک Query ساده قابل انجام است. چنانچه این مرحله با موفقیت به انجام برسد، رمز دریافت شده از کاربر با الگوریتم Bcrypt کد می‌شود و به جای sha1 قبلی ذخیره می‌شود.

مرحله‌ی بعدی نیز تلاش مجدد برای ورود به سایت با الگوریتم Bcrypt خواهد بود که این بار به درستی انجام خواهد شد.

با این روش، بار سنگین پردازش Bcrypt به اولین ورود کاربر موکول می‌شود.

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

در تماس باشید

درباره ما

لاراوب ارایه دهنده وب سرویس های ارز ، سکه ، طلا به صورت لحظه ای و وب سرویس قیمت 177 خودروی داخلی وخارجی قیمت بازار و کارخانه وب سرویس انس طلا ، مثقال طلا، گرم طلای ۱۸ وب سرویس قیمت موبایل وب سرویس ثبت احوال بررسی کد ملی و انواع وب سرویس ها می باشد .

وب سرویس های ارز ، سکه ، طلا به صورت لحظه ای و وب سرویس قیمت خودروی داخلی وخارجی ،وب سرویس انس طلا ، مثقال طلا، گرم طلای ۱۸ ، مثقال طلا ، شاخص بورس ، نفت سبک، نفت برنت، نفت اپک، بنزین (گالن)،وب سرویس لحظه ای قیمت موبایل ، تبلت سامسونگ ، اپل ، گازوئیل، انس پالادیوم