PDA

View Full Version : سوال: فراموش کردن رمز عبور



neda_dela
سه شنبه 28 اردیبهشت 1389, 12:58 عصر
سلام
برنامه ای که من نوشتم application هست من برای ورود به برنامه نام کاربری و رمز عبور استفاده کردم
حالا اگه کاربر من رمز عبورش رو فراموش کنه باید چکار کنه؟:لبخندساده:

wolf_majid
سه شنبه 28 اردیبهشت 1389, 13:05 عصر
سلام
برنامه ای که من نوشتم application هست من برای ورود به برنامه نام کاربری و رمز عبور استفاده کردم
حالا اگه کاربر من رمز عبورش رو فراموش کنه باید چکار کنه؟:لبخندساده:

راه حل های زیادی می شه پیش بینی کرد و لی الان راه حلی که به ذهن من می رسه اینه که :
شما یک پسورد ویژه مخصوص خودتون داشته باشید که اگر مبادا کاربر شما پسوردش را فراموش کرد با زدن این پسورد پسورد قبلی را از بانک برگردونه و نمایش بده

البته این پسورد شما را نباید کسی بدونه

sia_2007
سه شنبه 28 اردیبهشت 1389, 14:26 عصر
ببینید اگه برنامه شما سلسله مراتبی باشه؛ مثلا میتونه یه مدیری داشته باشه که رمزهای فراموش شده کاربران رو ریست کنه؛ یا اگه این طور نیست؛ خود شما یه یوزر و پس داشته باشید که بتونید اون رو عوض کنید.
مشکل این روش دوم اینه که اگه از این سیستم سو استفاده مالی بشه همه انگشتها به طرف شما بر میگرده.

#aliyari_C
سه شنبه 28 اردیبهشت 1389, 14:47 عصر
سلام
دو روش داری
1. اینکه موقعی که user و pas تعریف می کنی mail رو هم ازش بخوای و در هنگام فراموش شدن user و pas برا mail ش بفرستی.البته در صورت online بودن.
2.می تونی از طریق تشخیص کاربر ویندوز هم از این موضوع مطلع شی که کابر واقعی وارد شده, و اگر هم درست بود می تونی pas جدید بهش بدی.
___________________________
چون به دریا می توانی راه یافت
سوی یک قطره چرا باید شـتافت

ricky22
سه شنبه 28 اردیبهشت 1389, 14:57 عصر
سوال جواب امنیتی بزار.
اگه درست بود سیستم بهش پسورد بده نیازی به online بودنم نیست

zayens
سه شنبه 28 اردیبهشت 1389, 15:02 عصر
نیازی به این کارها نیست...
یادتونه چه طور ایمیل ساختید؟؟
از شما یه سوال می پرسید...
مثلا نام مدرسه ی ابتداییت چیه؟؟
وقتی کاربر پسورد را فراموش میکرد روی forgotPass کلیک می کرد و اگه به سوالی که هنگام ایجاد پسورد نوشته بود جواب میداد رمز را بهش میداد.
این روش بهتر نیست؟؟

zayens
سه شنبه 28 اردیبهشت 1389, 15:07 عصر
سوال جواب امنیتی بزار.
اگه درست بود سیستم بهش پسورد بده نیازی به online بودنم نیست
درسته منظور منم همین بود
پست قبلی ام را هم که زدم به این خاطر بود که پست ricky22 هنوز ثبت نشده بود و من در حال نوشتن بودم و گرنه من دیگه پست نمیدادم

r00tkit
سه شنبه 28 اردیبهشت 1389, 15:37 عصر
رمز تو کجا save می شه یعنی بعد این که کار بر مقداری رو وارد کرد ان مقدار با رمزی که کجا ذخیره شده مقایسه می شه؟

mehdi.mousavi
سه شنبه 28 اردیبهشت 1389, 16:19 عصر
شما یک پسورد ویژه مخصوص خودتون داشته باشید که اگر مبادا کاربر شما پسوردش را فراموش کرد با زدن این پسورد پسورد قبلی را از بانک برگردونه و نمایش بده
البته این پسورد شما را نباید کسی بدونه

سلام.
به این هم فکر کنید که اگر روزی این مساله آشکار بشه ممکنه بیشتر از اون چیزی که تصور می کنید بابتش بپردازید!

موفق باشید.

hojjatshariffam
سه شنبه 28 اردیبهشت 1389, 16:39 عصر
من همیشه برای این مواقع یه فرمی پیش بینی کردم که با کلید خاصی لود میشه رو صفحه
به کاربر دو عدد کد RSA میده کاربر با خود من تماس میگیره ، من هویتشو چک می کنم (که واقعا خود صاحب سیستم باشه نه کسی که بخواهد سوئ استفاده بکنه)
بعد توسط برنامه ای خودم برای این کار تهیه کردم دو کد دیگه دست می کنم و به کاربر می دم ، کاربر هم با وارد کردن اون کد ها در سیستم ، پسورد کاربر ادمین رو ریست می کنه
پسورد ها ی من همیشه هش شده اند و هیچ کس حتی خودم هم نمی تونم برشون گردونم ، پس تنها کار ممکن ریست کردن پسورده ، در این صورت هم امنیت پسورد به خطر نمی افته و هم هیچ پسورد خاصی وجود نداره که لو بره
دو کلید ایجاد شده در فرم مخصوص هم هیچ وقت یکسان نیست
موفق باشید

ostovarit
سه شنبه 28 اردیبهشت 1389, 18:12 عصر
ببینید اگه برنامه شما سلسله مراتبی باشه؛ مثلا میتونه یه مدیری داشته باشه که رمزهای فراموش شده کاربران رو ریست کنه؛ یا اگه این طور نیست؛ خود شما یه یوزر و پس داشته باشید که بتونید اون رو عوض کنید.
مشکل این روش دوم اینه که اگه از این سیستم سو استفاده مالی بشه همه انگشتها به طرف شما بر میگرده.

خوب اگر خود مدیر رمزش رو فراموش کرد چی؟
و اگر یوزر و رمز خودمون لو رفت چی؟
روش جالبی نیست

ostovarit
سه شنبه 28 اردیبهشت 1389, 18:14 عصر
راه حل های زیادی می شه پیش بینی کرد و لی الان راه حلی که به ذهن من می رسه اینه که :
شما یک پسورد ویژه مخصوص خودتون داشته باشید که اگر مبادا کاربر شما پسوردش را فراموش کرد با زدن این پسورد پسورد قبلی را از بانک برگردونه و نمایش بده

البته این پسورد شما را نباید کسی بدونه

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

ostovarit
سه شنبه 28 اردیبهشت 1389, 18:19 عصر
در بین جوابهای دوستان به نظر من درست ترین روش اینه که دو سوال امنیتی مطرح کنید (در ابتدای ورود اطلاعات اولیه) و جواب ها رو ذخیره کنید و در زمان فراموش رمز اون دو سوال را مجددا از کاربر بپرسید و پاسخ ها رو مقایسه کنید


اما سوال دیگه ای من دارم و اون اینه که وقتی رمز با یک الگریتمی در دیتابیس ذخیره میشه (مثلا MD5 )میشه به راحتی یک رشته MD5 را جایگزین آن کرد و با دانش اینکه اون رشته معادل چی هست به راحتی وارد سیستم شد برای جلو گیری از این موضوع چه کاری رو پیشنهاد میکنید یعنی کاربر نتونه به دیتابیس وصل بشه و یا تغییری خارج از نرم افزار در دیتابیس ایجاد کنه؟؟؟

من از خود SQL ویژال استفاده میکنم که رمزی واسه وصل شدن تو کانکشن نداره !

wolf_majid
سه شنبه 28 اردیبهشت 1389, 18:19 عصر
سلام.
به این هم فکر کنید که اگر روزی این مساله آشکار بشه ممکنه بیشتر از اون چیزی که تصور می کنید بابتش بپردازید!

موفق باشید.

موافقم
بهتره اون کد دست شما نباشه
می تونید به جز پرسیدن سوال کمکی یک کلاسی طراحی کنید که با گرفتن یک یا چند خصوصیت از سیستم پسورد تولید کنه و برنامه کاربر شما هم به اون کد تولید شده اجازه ورود بده
زمانیکه که کاربر با شما تماس می گیره , شما اون خصوصیات را ازش می گیرید و پسورد تولید شده توسط کلاس را بهشون می دید ( شاید هم جالب نباشه . به هرحال راه های زیادی هست :لبخند: )

ostovarit
سه شنبه 28 اردیبهشت 1389, 18:23 عصر
موافقم
بهتره اون کد دست شما نباشه
می تونید به جز پرسیدن سوال کمکی یک کلاسی طراحی کنید که با گرفتن یک یا چند خصوصیت از سیستم پسورد تولید کنه و برنامه کاربر شما هم به اون کد تولید شده اجازه ورود بده
زمانیکه که کاربر با شما تماس می گیره , شما اون خصوصیات را ازش می گیرید و پسورد تولید شده توسط کلاس را بهشون می دید ( شاید هم جالب نباشه . به هرحال راه های زیادی هست :لبخند: )

از دو تا کاربر اطلاعات رو بخوای فردا تو اینترنت پخش میشه بعد مثل آب خوردن الگورتمی که ازش رمز تولید میکنی پیدا میشه کاربرای ایرانی هم که همه فضول ... دور از جون شما ...

اگر واقعا امنیت نرم افزار واست مهمه این روشا کاربری نیست

wolf_majid
سه شنبه 28 اردیبهشت 1389, 18:32 عصر
از دو تا کاربر اطلاعات رو بخوای فردا تو اینترنت پخش میشه بعد مثل آب خوردن الگورتمی که ازش رمز تولید میکنی پیدا میشه کاربرای ایرانی هم که همه فضول ... دور از جون شما ...

اگر واقعا امنیت نرم افزار واست مهمه این روشا کاربری نیست

دوست عزیز اگر اینطوری باشه که دوبار به کسی گفتی خودت هم حفظ می شی
منظورم الگوریتمی به این سادگی نبود که بشه به راحتی درش آورد سیستمه که باید باش کنار بیاد نه مغز انسان
این هم باز مهم نیست . مهم اینه که یک راه حل جلوی دوستمون بزاریم که بتونه پسورد را برای کاربر برگردونه
برای وزارت دفاع که برنامه نمی نویسه ( یا می نویسه ؟ :لبخند: )

neda_dela
سه شنبه 28 اردیبهشت 1389, 23:19 عصر
سوال جواب امنیتی بزار.
اگه درست بود سیستم بهش پسورد بده نیازی به online بودنم نیست
مرسی دوست من
میشه بیشتر توضیح بدی؟
یعنی من باید یه تیبل برای سوال و جواب ها اشته باشم ....؟
ببین من الان کاری که خودم کردم اینه: البته نخندی ها من تازه کارم:قهقهه:
من فقط یه تیبل دارم برای login کردن با دو تا فیلد به نام های user و pass که توشون مقدار هایی هست که خودم تعیین کردم و کاربر اصلی با همون ها وارد میشه البته امکان تغییر رمز هم گذاشتم
مرسی

ricky22
سه شنبه 28 اردیبهشت 1389, 23:36 عصر
سلام دوست من بستگی به طراحی دیتابیست داره اما می تونی یه جدول درست کنی شامل اطلاعات شخصی user pass و ...
فقط کاری که می کنید اینه
سوال جواب امنیتی رو ذخیره کن و بعد برای reset پسورد اونا رو از کاربر بگیر اگر درست بود پسورد رو عوض کنی
هر جاش نا مفهوم بود بگو
البته اگه کار تجاریه بهتر براش ایمیل کنی یا sms کنی به ایمیل یا شماره ای که موقع ثبت نام گرفتی ازش
منم تازه کارم!
موفق باشی

amir.khanlari
چهارشنبه 29 اردیبهشت 1389, 11:15 صبح
سلام .
حالا اگه ما توی جدولمون user,pass کد شده کاربران رو ذخیره کرده بودیم چکار باید کرد . بازم امکان بازیابی رمز ورود وجود داره؟

ricky22
چهارشنبه 29 اردیبهشت 1389, 11:26 صبح
سلام .
حالا اگه ما توی جدولمون user,pass کد شده کاربران رو ذخیره کرده بودیم چکار باید کرد . بازم امکان بازیابی رمز ورود وجود داره؟
شما رمزو بروز می کنی یعنی تغییر میدی و این نیست که شما همون رمز قبلی کاربر رو بهش بدی در ضمن در دیتابیس رمز باید hash شده باشد نه کد یعنی برگشت ناپذیر که می دونم منظور شمام همین بوده
موفق باشید

hojjatshariffam
چهارشنبه 29 اردیبهشت 1389, 12:05 عصر
اما سوال دیگه ای من دارم و اون اینه که وقتی رمز با یک الگریتمی در دیتابیس ذخیره میشه (مثلا MD5 )میشه به راحتی یک رشته MD5 را جایگزین آن کرد و با دانش اینکه اون رشته معادل چی هست به راحتی وارد سیستم شد برای جلو گیری از این موضوع چه کاری رو پیشنهاد میکنید یعنی کاربر نتونه به دیتابیس وصل بشه و یا تغییری خارج از نرم افزار در دیتابیس ایجاد کنه؟؟؟

من از خود SQL ویژال استفاده میکنم که رمزی واسه وصل شدن تو کانکشن نداره !

می تونی پسوردتو با یه سری چیزا ترکیب کنی بعد ذخیره کنی
مثلا با کئ کار بری ، نام کاربری ، یه عدد یا رشته ثابت .
می تونی پسورد رو چند تکه کنی ، بعد جای تکه ها رو با هم عوض کنی بعد هش کنی
این موقع دیگه تا کسی به کدت دسترسی پیدا نکنه ، هیچ کس نمی تونه پسورد هات رو بدونه

amir.khanlari
پنج شنبه 30 اردیبهشت 1389, 10:57 صبح
شما رمزو بروز می کنی یعنی تغییر میدی و این نیست که شما همون رمز قبلی کاربر رو بهش بدی در ضمن در دیتابیس رمز باید hash شده باشد نه کد یعنی برگشت ناپذیر که می دونم منظور شمام همین بوده
موفق باشید
سلام.
درسته منظور من این بود که رمز رو Hash شده در بانک ذخیره کردیم.ممنون

Evil 69
پنج شنبه 30 اردیبهشت 1389, 11:26 صبح
شما دو تا سوال از اون بپرس و بعد اونا رو توي DB با جواباش Save كن داده هاي توي Db رو هم كد كن البته نه با يك الگريتمي كه ساده باشه مثل اين Base64 كه زياد كم استفاده مي شه خوبه (اما مي توني همون رو هم يك الگريتم ديگه تركيب كني تا پيدا كردنش سخت تر بشه). وبعد براي دسترسي به سوالات و برگردوندن اطلاعات مي توني از يك پروسيجر كه اون رو فقط با يك User و Pass خاص با شرايطي كه خودت مي خواي مي شه صدا زد استفاده كن براي برگردوندن اطلاعاتت. اطوري كاربرت كه راحت مي تونه Pass رو گير بياره و كسي هم كه بخواد Pass كسي رو بكشه داده هاي روبروش اون قدر كئ شده و امن هستن كه بتونه به راحتي و توي يك زمان كم به اونا دسترسي پيدا كنه. اين تقريبا اون كاريه كه وب سايت هاي بزرگ مثب Google و ... انجام ميدن ( تقريبا نه كاملا )