PDA

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



eshpilen
جمعه 16 فروردین 1392, 12:48 عصر
توی سیستمهایی که صحت ایمیل رو Verify میکنن و ما تاحالا دیدیم اکثرشون به این شکل بوده که اول فیلدهای ثبت نام (نام کاربری، پسورد و غیره) رو کامل پرمیکنی و دست آخر یک ایمیل حاوی لینک فعال سازی به ایمیل شما میفرستن.

من خودمم توی پروژم اینطور کار کردم.
ولی بعدش سیستم فروم هممیهن (http://forum.hammihan.com/) رو دیدم بنظرم رسید بهتره.
خب فرق روش فروم هممیهن چیه؟
اینکه که اول فقط ایمیل رو وارد میکنی و یک لینک مخصوص ادامهء مراحل ثبت نام به ایمیلت ارسال میکنه که میتونی از طریق اون لینک ثبت نام کنی.

خب حالا مزایای این روش چیه؟
یکیش اینکه رکورد موقتی که در دیتابیس ذخیره میشه حجمش خیلی کمتره، چون فقط حاوی کلید لینک هست و نه اطلاعات کاربری دیگر.
البته این مسئله بنظر زیاد هم مهم نیست!

مزیت دیگش اینه که در روشی که ابتدا ثبت نام میشه و بعد لینک فعال سازی اکانت ارسال میشه، نام کاربری ارسال شده در اون مدت (مثلا 24 ساعت مهلت برای تایید ایمیل) اشغال میشه و کس دیگری نمیتونه باهاش ثبت نام کنه در اون مدت، ولی این مسئله در روشی که اول فقط صحت ایمیل رو چک کنیم وجود نداره.

بعد مسئلهء دیگری که هست و برای خودم تاحالا چندبار در ثبت نام سایتها پیش آمده اینه که ممکنه کاربر فکر کنه ثبت نام نیازی به تایید ایمیل نداره و بنابراین یک ایمیل الکی ای چیزی رو موقع ثبت نام وارد کنه، اما دست آخر که کار از کار گذشته متوجه میشه که باید یک ایمیل معتبر رو وارد میکرده تا بتونه اکانت خودش رو فعال کنه.
شاید بگید خب کاربر به چه انگیزه ای ایمیل نامعتبر وارد کرده. خب من خودم گاهی ترجیح دادم ایمیلم رو در دسترس خیلی سایتها نذارم. اینطوری از نظر امنیت و Privacy و اینها بنظرم بهتر بوده. گاهی هم حتی بخاطر عجله/تنبلی یک ایمیل الکی ولی کوتاه و ساده رو که میشده راحت و سریع تایپ کرد وارد کردم.

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

در کل شاید خیلی هم مسئلهء مهمی نباشه که تایید ایمیل به کدام یک از این دو روش باشه (حداقل نه در این حد که بخوایم برنامه هایی رو که قبلا نوشته شدن تغییر بدیم)، ولی بنظر میرسه روشی مشابه فروم هممیهن رو باید ترجیح داد، چون هم از نظر یوزرفرندلی و هم نظرهای فنی/امنیتی مناسبتره.
نظر شما چیه؟

navid3d_69
جمعه 16 فروردین 1392, 13:02 عصر
مشه بدونه اینکه چیزی توی دیتابیس ذخیره کرد این کار رو انجام داد و امن باشه؟

من هنوز این کار رو کامل انجام ندادم ولی تست کاردم بنظرم بد نمیاد و امنیتش هم بد نیست

من ا زکاربر ایمیل و نام کاربری رو میگیرم بعد از دیتابیس نام و نام کاربری و ایمیل و پسورد و تاریخ عضویت رو میگیرم و همه این هارو 2 بار تکرار می کنم و هش می کنم حالا این کد برای کاربر ایمیل میشه اگر با این کد باید به صفحه فراموشی رمز عبور بره چک میشه از دیتابیس و هش میشه اگر درست بود کاربر می تونه پسورد رو تغییر بده بنظر شما درسته؟

navid3d_69
جمعه 16 فروردین 1392, 13:03 عصر
ااا من اشتباه دیدم فکر کردم برای صفحه forget passworde : دی الان تازه فهمیدم که برای فعال سازی

eshpilen
جمعه 16 فروردین 1392, 13:26 عصر
من ا زکاربر ایمیل و نام کاربری رو میگیرم بعد از دیتابیس نام و نام کاربری و ایمیل و پسورد و تاریخ عضویت رو میگیرم و همه این هارو 2 بار تکرار می کنم و هش می کنم حالا این کد برای کاربر ایمیل میشه اگر با این کد باید به صفحه فراموشی رمز عبور بره چک میشه از دیتابیس و هش میشه اگر درست بود کاربر می تونه پسورد رو تغییر بده بنظر شما درسته؟
گرچه ربطی به موضوع تاپیک نداره، ولی خیر این روش اصولی ای نیست!

همهء این اطلاعات بجز پسورد میتونه به شکلهای مختلف در اختیار دیگرانی هم قرار بگیره، پسورد هم که هم آنتروپیش کمه و هم ممکنه جورهای دیگه نشت کرده باشه؛ کلا درست نیست که پسورد رو با چنین مسئلهء حساسی پیوند بزنیم.
اتکا بر پنهان ماندن الگوریتم استفاده شده هم که میشه «امنیت از طریق تیرگی» که اینم باز قابل قبول نیست.

بجای این همه پیچوندن های الکی بهتره یک تابع رندوم امن درست کنید و یک عمری هرجایی لازم شد ازش استفاده کنید بدون اینکه نیازی باشه برای هر مورد این همه خلاقیت (!) به خرج بدید و یک الگوریتم من درآوردی درست کنید.

تابع رندوم امن مثل این: http://www.hamidreza-mz.tk/?p=649

البته توصیه میشه تعداد حالتهای رشته های رندوم شما از 2 به توان 128 کمتر نباشه (مثلا یک رشتهء رندوم متشکل از حروف بزرگ و کوچک و اعداد با طول 22 کاراکتر)؛ هرچند برای خیلی کاربردها حتی در منابع حرفه ای امنیت به این میزان از استحکام اشاره نشده ولی ضرر و هزینهء سنگینی هم نداره.

tehro0n
جمعه 16 فروردین 1392, 15:15 عصر
فکر خوبیه، من البته بیشتر با اون متنی که هنگام ثبت نام زده حال کردم
"ایمیل بدون www وارد شود!"
خیلی از کاربرای من هم اینجوری ایمیل میدن :D

eshpilen
جمعه 16 فروردین 1392, 17:12 عصر
حالا اومدیم یکی واقعا ایمیلش www داشت :قهقهه:

tehro0n
جمعه 16 فروردین 1392, 19:53 عصر
آره دیگه اون دسته از افرادی که فکر می کنند ایمیل با www هست و اینجوری هم ساختن با این جمله دچار اشتباه میشن :لبخند: