
سامانه نباید برای ورود بعدی، نسخه خوانای رمز عبور را نگه دارد. ذخیرهسازی باید به شکلی باشد که بررسی رمز ممکن شود، بدون آنکه خود رمز به سادگی قابل بازیابی باشد.
از API مناسب هش رمز استفاده کنید
در PHP، password_hash و password_verify برای این کار طراحی شدهاند. الگوریتم و محدودیت طول آن را بشناسید و ستون دیتابیس را با ظرفیت کافی نگه دارید. هش عمومی سریع مانند SHA-256 به تنهایی جای هش مناسب رمز را نمیگیرد. رمز و ورودی حساس نیز نباید وارد گزارش خطا شوند.
بازیابی را با توکن کوتاهعمر انجام دهید
سامانه رمز قبلی را ارسال نمیکند؛ یک مسیر تعیین رمز تازه فراهم میکند. توکن باید تصادفی، محدود در زمان و یکبارمصرف باشد و نسخه هششده آن در دیتابیس ذخیره شود. پاسخ عمومی درخواست بازیابی نباید به سادگی وجود یک ایمیل را افشا کند.
پس از تغییر، دسترسیهای قبلی را لغو کنید
نشستها و توکنهای ماندگار قبلی ممکن است همچنان فعال باشند. تغییر رمز باید به سیاست روشن لغو یا بازتأیید آنها متصل شود. برای حساب مدیر، کنترل تلاش ورود و نگهداری امن کانال بازیابی نیز مهم است.
- رمز پیشفرض مشترک برای همه نصبها نگذارید.
- توکن بازیابی را در لاگ ثبت نکنید.
- محدودیت بایتی الگوریتم انتخابی را بررسی کنید.

