-
رمز در دیتبابیس
سلام.
من اگر بخوام امنیت سایتم بالا بره، میتونم در دیتابیس رمز ها رو به دو صورت هش شده و هش نشده ذخیره بکنم یا نه؟
یعنی اینکه یه نسخه ی هش شده باشه که هر دفعه update بشه و یه نسخه ی هش نشده یا همون رمز معمولی باشه و این طور عمل کنه سیستم لاگینم؟:
اول ببینه یوزر نیم و پسورد داده شده در دیتابیس موجود هست یا نه، بعد رمز رو هش کنه و بعد هم رمز هش شده رو در کوکی و دیتابیس ذخیره کنه و هر صفحه ای که نیاز داشت کاربر لاگین کرده باشه مثل کنترل پنل، ببینه رمز هش شده در کوکی با رمز هش شده درون دیتابیس یکی هست یا نه.
این کار درسته؟
-
می شه بگید با این کار جلوی چه چیزیو می خواهید بگیرید؟
-
به طور کلی رمز (هش شده یا نشده) رو در کوکی ذخیره نکنید ./.
-
اِاِاِاِاِاِِ چرا؟ همه میگن باید رمز رو هش شده توی کوکی نگه داریم بعدا تو هر صفحه ای که باید لاگین کرده باشین چک کنین یوزرنیم و پسورد در دیتابیس تطابق دارن یا نه! دلیلش رو میشه بگید؟
سپاس.
-
فرض کنید شما رمز کاربر رو هش می کنید و در کوکی میذارید، و همون طور که گفتید در هر صفحه، این کوکی رو با دیتابیس چک می کنید. در این حالت، عملا شما رمز کاربر رو در کوکی گذاشتید و هر کسی با داشتن اون کوکی (جعلی یا واقعی) می تونه به حساب کاربر وارد بشه (یا هش رو کرک کنه و از فرم لاگین کنه، یا هش رو در کوکی بذاره)
می تونید به جای اینکار، در هنگام لاگین کاربر، یک عبارت تصادفی هش شده تعریف کنید و در دیتابیس و کوکی ذخیره کنید. و در هر صفحه، این عبارت رو از کوکی بگیرید و با دیتابیس چک کنید. البته باید مکانیزمی تعریف کنید که این عبارت بعد از مدتی (ساعت/روز) از کار بیفته.
موفق باشید ./.