با سلام
دوستان به نظر من خیلی خیلی ساده تر میتونیم این مسئله حل کنیم!!! فرض کنیم جدول کاربران ما شامل فیلدهای زیر باشه:
{ UserID, UserName, pass, Email, Status }
بسیار خوب فیلد کد کاربر که خودکاره و برای هرکسی منحصر به فرده, از طرفی نام کاربری و ایمیل نیز خاصیت یکتایی دارند به صورت منطقی!! خب با این تفاسیر کد فعال سازی رو به صورت زیر درست می کنیم که احتمال هکش به صفر برسه.
در لینک ایجاد شده نام کاربری یا کد کاربری + یک هش تولید شده از ترکیب (کد کاربری + نام کاربری + ایمیل + رشته ی ثابت برای امنیت بیشتر ) ایجاد می کنیم. در این حالت فقط کد کاربری و این رشته ی هش شده نمایش داده میشود که فک نکنم کسی بفهمه چیه.
زمانی که هم این صفحه با این لینک درخواست شد, دقیقا عکس این عمل (کرک) را انجام می دهیم تا از صحت درخواست مطمئن شویم. بدین ترتیب که مثلا کد کاربری 1000 توسط لینک فرستاده شده است, این رکورد را در جدول کاربران یافته, و این مراحل هش را روی این رکورد مورد نظر انجام می دهیم, حال اگر رشته ی بدست آمده مطابقت داشت با رشته ی ارسال شده توسط لینک, نتیجه میگیریم که این درخواست, درخواست امن است و کاربر باید فعال شود, در غیر این صورت متوجه غیرقانونی بودن درخواست شده و جلوی آن را می گیریم. (مثلا ای پی آن را ذخیره و برای مدت زمانی مشخص درخواست های ارسال شده از طرف این ای پی را نادیده می گیریم و از این جور کارها البته اگه حوصلشو دارین!!!!!!!!!!!!
)
به همین راحتی!!!!!!!!!
به عنوان مثال:
ActivationUser.aspx?ID=283&Code=hdbfjhvdSBDkjzdbvj zhdn,zmnbvmvb
برای امنیت بیشتر می توانید هنگام ساختن لینک به کد کاربری مقداری تعیین شده اضافه کنید که حتی شماره رکود شما هم فهمیده نشود. خلاصه خیلی مسائل میتونین پیاده سازی کنین.
موفق باشید