PDA

View Full Version : سوال: تغییر رمز کاربران



lady64
دوشنبه 01 اسفند 1390, 07:48 صبح
منطق برنامه ای که مینویسم اینه :
مسئول سایت ، نام ، نام خانوادگی و پست هر کس (4 نفر از اعضای شرکت)رو ثبت میکنه و همون لحظه بهشون یک user و pass دلخواه هم میده که بعدا میتونن عوض کنند.
حالا اگه یکی از اعضا رمزش رو فراموش کرد ، منطقی ترین راه برای دادن یک رمز جدید چیه؟
خب تو سایتهای دیگه خود کاربر اطلاعاتی اضافی برای فراموش کردن رمز میده .مثل email و چند سوال دیگه.
تو برنامه ی من این اطلاعات اضافی پر نمیشه (چون با پر کردن این اطلاعات توسط خودشون هم فکر نمیکنم یادشون بمونه )
ممنون میشم راهنمایی بفرمائید.

eshpilen
دوشنبه 01 اسفند 1390, 10:09 صبح
باید از طریق ایمیل کار کنی.

lady64
دوشنبه 01 اسفند 1390, 10:19 صبح
باید از طریق ایمیل کار کنی.

میشه بیشتر توضیح بدید ؟؟؟
روال کار چیه ؟

eshpilen
دوشنبه 01 اسفند 1390, 10:49 صبح
کاربر به سیستم میگه I forgot my login information.
بعد باید ایمیلی رو که موقع ثبت نام مشخص کرده وارد کنه.
سیستم چک میکنه آیا کاربری با ایمیل مورد نظر وجود داره یا نه.
اگر وجود داشت یک رشتهء رندوم طولانی (مثلا 22 کاراکتر متشکل از اعداد و حروف بزرگ و کوچک) تولید میکنه و این رشته رو در دیتابیس ذخیره میکنه، و بعدش یک ایمیل محتوی یک لینک با این رشته بعنوان کلید به ایمیل مورد نظر ارسال میکنه. کاربر وارد ایمیلش میشه، لینک رو باز میکنه، سیستم صحت کلید رو چک میکنه، اگر درست بود به کاربر اجازه میده یک پسورد جدید برای اکانت مورد نظر انتخاب کنه.
بعضی سیستمها پسورد قدیمی رو در همون ایمیل ارسال میکردن، ولی این روش الان تقریبا منسوخ شده (بنظرم بخاطر مسائل امنیتی).

eshpilen
دوشنبه 01 اسفند 1390, 11:49 صبح
نکات امنیتی که بنظرم میرسه:

- رشتهء رندوم باید برای زمان خاصی معتبر باشه (مثلا 24 ساعت).
پس ذخیرهء این رشته موقتی هست و بعد از زمان خاصی بی اعتبار میشه و نهایتا هم توسط سیستم Cleanup از دیتابیس حذف میشه.
یادتون باشه در هر ایمیل ارسالی در 24 ساعت مورد نظر، رشتهء رندوم باید ثابت باشه و تغییر نکنه (مثلا هربار یک رشتهء رندوم جدید تولید نشه).

- تعداد ایمیل هایی که به ایمیل یک اکانت ارسال میشه باید محدود بشه تا از سوء استفاده از این سیستم برای Email bomb کردن دیگران جلوگیری بشه.
مثلا حداکثر 10 ایمیل به ازای هر اکانت در هر 24 ساعت.
یا میتونید اگر 3 ایمیل ارسال شد برای ایمیل های بعدی کپچا بگیرید (یا ترکیبی از این روش و روش قبل برای محافظت بیشتر).

- موقعی که تطابق/وجود ایمیل کاربر در سیستم چک میشه بعدش اگر ایمیل ارسال میشه یا نمیشه نباید به کاربر اطلاع داد که ایمیل درست بود یا غلط و ایمیلی ارسال شد یا نه. چون اگر اینطور نباشه هرکسی میتونه از این سیستم برای کشف ایمیل های موجود در سایت سوء استفاده کنه.
دقت کنید که در آیتم قبل که گفتیم اگر 3 ایمیل ارسال شد بعدش کپچا بگیرید، خود این قضیه وجود ایمیل رو لو میده (هکر هر ایمیل مورد تست رو 3 بار وارد میکنه و اگر در بار چهارم کپچا بخواد یعنی اون ایمیل در سایت وجود داره - توجه کنید که این کار میتونه بصورت خودکار انجام بشه)، بنابراین بهتره کلا برای هر ایمیل از همون ایمیل اول کپچا بگیرید.
همچنین وقتی سیستم به محدودیت 10 ایمیل ارسالی در 24 ساعت برخورد کرد بازم نباید این قضیه رو به کاربر اطلاع بدید.
اما همهء این ویژگیها رو باید به اطلاع کاربر رسوند تا سردرگم نشه و احتیاط بیشتری بکنه. یعنی باید بگید سیستم بخاطر مسائل امنیتی نمیگه که ایمیل درست بود یا نه، و سیستم به شما نمیگه که آیا 10 ایمیل در 24 ارسال شده و به محدودیت برخورد کردید یا نه.

--------------------------------------------------

البته احتمالا بعضی از این توصیه ها در همه جایی اونقدرها مهم نیستن و یک دیدگاه امنیتی سختگیرانه ای محسوب میشن، ولی بهرحال ما باید به این نکات اشاره میکردیم. خیلی سیستمها همهء این موارد رو رعایت نمیکنن.

lady64
دوشنبه 01 اسفند 1390, 12:02 عصر
مواردی که گفتید خیلی مفید و قابل درک بود.مرسی.حتما در برنامه های دیگه از این ایده استفاده میکنم.
اما در برنامه ی من ، که افراد شرکت ایمیل ممکنه نداشته باشن یا حتی ساخت اونو بلد نباشن ، آیا این روش من میتونه منطقی باشه ؟
" این که مدیر سایت user هر شخص رو بگیره و خودش یک پسورد جدید بده."
یکی از دوستانم برنامه ای نوشته بودند که اگه شخصی رمزش رو فراموش میکرد با مدیر سایت تماس میگرفت.
میخواستم بدونم برای مواردی که اشخاص مرتبط با سایت ممکنه آدم های وارد به کامپیوتر نباشن ، میتونه این روش از نظر شما درست و منطقی باشه ؟

lady64
دوشنبه 01 اسفند 1390, 20:45 عصر
دوستان ، میشه بگید راهم منطقیه یا خیر؟ با پیش فرض های گفته شده..............:افسرده:

masoud_tamizy
دوشنبه 01 اسفند 1390, 23:07 عصر
خب اینم یه راهه دیگه ! امکانسنجی کن ببین اگه شدنیه می تونی استفاده کنی
درپناه حق