PDA

View Full Version : بازیابی رمز عبور



نیلوفر66
شنبه 11 مرداد 1393, 20:38 عصر
سلام
کاربرهای سایت کد ملی شون بعنوان کد کاربری برای ورود در نظر گرفته شده و این سایت برای یک موسسه هست که تنها کارمندها به سایت ورود میشوند.
برای بازیابی رمز عبور ایمیل رو وارد میکنه و از جدول اطلاعات کارمندان براساس ایمیل وارد شده کد کاربری(کدملی) پیدامیشه و در جدول مربوط به پسوورد ،کد کاربری پیدا و پسوورد آپدیت و به ایمیل ارسال میشه.
مشکل:
کارمندها ایمیل هم رو دارن چون مدیر بهنگام ارسال ایمیل به تمام کارمندان cc میزنه.... و کارمندها خیلی شیطون راحت میتونن از این طریق پسوورد دوستان رو مدام تغییر بدن حتی احتمال میدم کد ملی رو هم پیدا کنن
پیشنهاد؟

arta.nasiri
شنبه 11 مرداد 1393, 20:44 عصر
سلام

بهتره یک لینک به ایمیل کاربر بفرستید و وقتی کاربر روی اون لینک کلیک کرد منتقل بشه به صفحه ای که بتونه خودش پسورد جدید رو انتخاب کنه! حالا این وسط میشه چندتا سوال امنیتی هم پرسید برای بالا بردن امنیت.

نیلوفر66
شنبه 11 مرداد 1393, 21:00 عصر
یعنی لینک صفحه بازیابی رمز عبور رو به ایمیل ارسال کنم؟ از کجا کدکاربری رو بفهمم؟

under22
شنبه 11 مرداد 1393, 21:05 عصر
یه فیلد تو جلد کاربر اضافه کن به اسم مثلا hash وقتی کاربر میخواد رمز عبور رو بازیابی کنه یه هش تصادفی براش بساز بریز داخل این فیلد hash بعد یه لینک براش بفرست داخل ایمیل وقتی رو اون لینک کلیک کنه به یه اکشن بره و مقدار اون هش رو برات بفرسته . حالا کاره اون اکشن اینه که اون هش رو از داخل دیتابیس می خونه و میفهمی کدوم کاربر هست و یه فیلد بهش نشون میدی تا رمز عبور جدید رو وارد کنه .
من خودم همیشه از این روش استفاده میکنم .

نیلوفر66
شنبه 11 مرداد 1393, 21:10 عصر
بعد یه لینک براش بفرست داخل ایمیل وقتی رو اون لینک کلیک کنه به یه اکشن بره و مقدار اون هش رو برات بفرسته .

ببخشید خیلی سوال میپرسم...مقدار هش رو از کجا برام بفرسته؟ ضمیمه لینک کنم؟

under22
شنبه 11 مرداد 1393, 21:19 عصر
مراحل رو از اول میگم .
اول که کاربر میخاد رمز عبور رو عوض کنه ایمیلش رو بگیر و پیغام نشون بده که رمز عبور جدید به ایمیل ارسال شد .
بعد ایمیلش رو چک کن بیین داخل دیتابیس هست یا نه اگه نه که هیچی اگه هست اسمش رو بردارد بخاطر اینکه سعی کنی هش رندوم باشه .
بعد یه هش براش بساز با اعداد تصادفی و اسمش یا ایمیلش که سعی بشه یونیک باشه .
باید یه تابع بنویسی که یه مقدار هش رو از طریق url یعنی get بگیره و چک کنه آیا این هش وجود داره یا نه اگه نه که هیچی اگه هم هست یه text براش بزار که رمزش رو عوض کنه .
مثلا تابع شما این شکلی میشه


<?php
$hash=$_GET['hash'];
function checkhash($hash)
{
//check hash table user
}
?>