- اطلاعات هویتی یا سوالات امنیتی جمع آوری کنید.
در صفحه اول پیاده سازی یک فراموشی رمز عبور امن از کاربر میخواهید حداقل اطلاعاتی را که قبلا ثبت کرده است را وارد کند. حداقل باید داده هایی را جمع آوری کرده باشید که این امکان را به شما بدهد که اطلاعات بازیابی کلمه عبور را به کاربر از طریق اس ام اس, ایمیل و ... ارسال نمایید.
- سوالات امنیتی را بررسی کنید.
بعد از مرحله اول باید بررسی کنید که دیتاهایی که در فرم اول ارسال شده اند معتبر هستند یا نه. اگر هر داده های اشتباه بود یا نام کاربری یافت نشد یک صفحه به عنوان مثال با عنوان داده های ارسال شده نامعتبر هستند را به کاربر نشان میدهید. اما اگر تمامی فیلد های ارسالی از فرم اول صحیح باشند شما باید حداقل دو سوال امنیتی که در حین ثبت نام از کاربر گرفته اید را برای وی نشان دهید.بهتر است از یک فرم HTML استفاده کنید برای ارسال اطلاعات درخواستی. از منو برای نشان دادن جواب سوال ها استفاده نکنید. از ارسال نام کاربری یا آیدی کاربر به این صفحه به عنوان پارامتر ( مخفی یا هرچه ) خودداری کنید. نام کاربری باید در سشن سمت سرور قرار گیرد و در صورت لزوم آن را بازیابی کرد. به دلیل این که سوالات و پاسخ های کاربران معمولا عمومی هستند مانند ورزش مورد علاقه شما چیست؟ در کدام شهر به دنیا آمده اید؟ رنگ مورد علاقه شما چیست؟ اطمینان حاصل کنید که تعداد حدسهای کاربر را محدود کرده اید واگر تعداد تلاش ها بیشتر از ( 3 تا 5 بار ) بود اکانت کاربر را برای مدتی قفل کنید.
- ارسال یک توکن از طریق یکی از راه های ارتباطی
بعد از قدم دوم بلافاصله اکانت کاربر را قفل کنید. سپس یک کد دارای 8 رقم یا بیشتر برای کاربر ارسال کنید از طریق ایمیل یا اس ام اس. این کار باعث ایجاد یک ارتباط خارجی میشود و امنیت اکانت را افزایش میدهد. اگر هکر بتواند مراحل یک و دو را پیش سر بگذارد بعید است که بتواند از این مرحله عبور کند. همچنین برای کد ارسالی خود را یک زمان انقضا مشخص کنید به عنوان مثال بیشتر از 10 دقیقه کد منقضی شود. با این کار اگر کاربر در اطراف هکر نباشد یا ایمیل کاربر بعدا به خطر بیافتد, بعد از 10 دقیقه کد ارسالی منقضی میشود و برای بازیابی کلمه عبور معتبر نخواهد بود. البته بعد از بازیابی کلمه عبور ,کد ارسال شده نباید معتبر باشد.
- به کاربر اجازه دهید رمز عبور خود را تغییر دهد
این مرحله نیازمند کد ارسالی در مرحله 3 ارسال شده است. سپس یک صفحه HTML حاوی یک فیلد برای کد ارسالی, رمز عبور جدید و تکرار رمزعبور جدید را به کاربر نشان دهید. بررسی کنید که کد ارسالی درست باشد و مطمن شوید که رمزعبور حاوی تمامی پیچیدگی ها و سیاست های سایت شما باشد. در حین ارسال فرم مانند قبل از ارسال نام کاربری خودداری کنید و آنرا از سشن سمت سرور بخوانید. در آخر این بسیار مهم است که بررسی کنید کاربر بدون عبور کردن از مرحله از 1 و 2 به این مرحله دسترسی نداشته باشد. اطمینان حاصل کنید که کاربر رمز عبور خود را تغییر داده باشد و به سایر صفحات وب سایت نمیرود. بازیابی کلمه عبور باید قبل از هرکار دیگری توسط کاربر انجام شود.
- نوشتن لاگ ها
این بسیار مهم است که سوابق درخواست های تغییر رمزعبور را نگهداری کنید. شامل پاسخ به سوالات امنیتی است یا نه, زمانی که کد به کاربر ارسال شده است و زمانی که کاربر کد را وارد کرده است. تعداد پاسخ های اشتباه به سوالات امنیتی و استفاده از کدهای منقضی شده بسیار مهم هستند. داده هایی مانند زمان , IP address و اطلاعات مروگر میتواند برای پیداکردن هکر میتواند مفید باشد.
چند نکته
- زمانی که عملیات بازیابی کلمه عبور موفقیت آمیز بود باید سایر شسن های فعال غیرفعال شوند. توجه داشته باشید که سشن فعلی از قبل تایید شده و نیازی به لاگین مجدد ندارد.
- میزان سختی سوال هایی که پرسیده میشود بستگی به تقش کاربر دارد. سوالات ادمین ها باید سخت تر باشد.
- در یک پیاده سازی ایده ال باید سوالات پرسیده شده را بچرخانید. مثلا در هر بار یکی از سوالات را نمایش دهید
Powered by Froala Editor