سلام دوستان گرامی
می خوام صفحه ی لاگین من این امکان رو داشته باشه که پس از چند بار اشتباه وارد کردن رمز به مدت معینی بسته بشه و کاربر نتونه حتی با وارد کردن رمز درست هم وارد کنترل پنل بشه؟
لطفا راهنمایی بفرمایید!
سلام دوستان گرامی
می خوام صفحه ی لاگین من این امکان رو داشته باشه که پس از چند بار اشتباه وارد کردن رمز به مدت معینی بسته بشه و کاربر نتونه حتی با وارد کردن رمز درست هم وارد کنترل پنل بشه؟
لطفا راهنمایی بفرمایید!
سلام
شما کد صفحه لاگین رو حداقل بزار اینجا تا بشه بهتر راهنمایی کرد.
(به صورت ساده) تعداد اشتباهات رو در یک سشن و زمان دسترسی غیرمجاز را دریک شسن دیگر ذخیره کن، تا موقعی که زمان دسترسی غیر مجاز کوچکتر از زمان بررسی اطلاعات نشده اصلاً نیاز به بررسی اطلاعات نداری و مستقیماً قفل بودن صفحه به مدت ... رو اعلام کن، اگه تعداد اشتباهات به تعداد دلخواهت رسید اونوقت سشن زمان دسترسی غیر مجاز رو مقدار دهی کن.
موفق باشید.
سشن ها قابل اعتماد نیستنن چون از بین میرن . بهتره توی جدول لایگن یه قسمت هم برای لاگین های اشتباه بزاری و هر وقت به تعداد معینی رسید دیگه لاگین انجام نشه و بنویسه اکانت مسدود شده و برای فعال سازی اکانت هم یه ایمیل فعال سازی ارسال بشه . البته اگه از کوکی ها هم استفاده بشه که چ بهتر . یه کوکی که واسه هر بار لاین ناموفق مقدارش یه دونه بیشتر شه و وقتی هم به مقدار معین رسید دیگه اون قسمت رو نیاره ... البته کوکی خیلی راحت از بین میرن ولی واسه کاربر عادی جواب میده و بهترین کار همون فیلد لاگین ناموفقه
سشن و کوکی هردوشون توسط کلاینت قابل حذف هستن، بنابراین استفاده ازشون به این شکل در این کاربرد اشتباهه.
آخرین ویرایش به وسیله eshpilen : جمعه 08 فروردین 1393 در 18:22 عصر
با سلام
با فرمایشات دوستمون آقایmasiha68کاملاً موافقم، اینکه سشن و کوکی غیرقابل اعتماد هستن منطقیه، ولی توجه داشته باشید همونطور که عرض کردن این روش صرفاً یک روش مبتدی و ساده است.
وگرنه در برنامه هایی که امنیت اهمیت بالایی دارد مطئناً باید از دیتابیس کمک گرفت، هرچند پیشنهاد بنده در این مورد نیز استفاده از دیتابیس است، قبلاً در این مورد در پستهای بنده آموزش استفاده از سشن ها در دیتابیس وجود دارد.
موفق باشید
بهتره کمی رعایت حال کاربران رو هم بکنید. برای مثال شاید کاربر بنده خدا واقعاً رمزش یادش رفته یا یکی که باهاش خصومت داره و شناسه کاربریش رو میدونه، عمداً چند بار رمز رو اشتباه وارد کنه تا اکانتش قفل بشه. اینجور مواقع بهتره ضمن قفل کردن اکانت، یک لینک تغییر رمز به ایمیلی که موقع ثبت نام داده، بفرستین و بهش بگین که اکانتتون قفل شده و درصورت تمایل برای بازکردنش، باید وارد ایمیلتون بشین و رمز جدید بگذارین. اینطوری اگه ایمیلش هم اشتباه وارد شده باشه یا هک شده باشه، دیگه مسئولیتی متوجه شما نیست. برای پیاده سازی این روش هم کافیه یک فیلد برای تعداد دفعات تلاش جهت لاگین بگذارین و هربار که رمز اشتباه وارد میشه، یک واحد بهش اضافه کنید و مثلاً اگه به 3 رسید، اکانت قفل میشه و ایمیل رو میفرستین. حالا هرموقع تونست لاگین کنه، اون فیلد رو صفر میکنید. توی لاگین هم فقط وقتی اجازه میدین وارد بشه که اون فیلد، کوچکتر از 3 باشه.
ممنون از دوستان حل شد!
فقط بنده یک قسمت رو اضاف کنم :
این چیزهایی که دوستان گفتند همش خوب و درسته
ولی به نظر بنده بعد از استفاده از چیزهایی که دوستان فرمودند . استفاده از آی پی کاربر هست . به این صورت که فقط آی پی کاربری که رمز رو اشتباه وارد می کنه بن بشه و...
دقیقا مثل اسکریپت whmcs که بعد از 3 بار لاگین ناموفق آی پی رو بن کرده و یک ایمیل حاوی اطلاعات آی پی و ... به کاربر اصلی میفرسته
موفق باشید
اتفاقاً برعکس مسدود کردن بر اساس IP رو کار خوبی نمیدونم چون توی اینترنت Dial-Up و ADSL خیلیها با IP مشترک سایت رو مورد بازدید قرار میدن و با این کار، دسترسی همه اونها به سایت قطع خواهد شد. ازطرفی به راحتی میشه با خاموش و روشن کردن مودم ADSL یا استفاده از یک کارت اینترنت Dial-Up دیگه و یا حتی با نرم افزارهای IP Changer آدرس IP رو تغییر داد.
درسته آقای شهرکی قبلش می خواستم این چیزها رو بنویسم که ممکنه آی پی عوض بشه ولی ...
نگاه کنید اولا دسترسی به کل سایت که قطع نمیشه و فقط قسمت لاگین و...
و نکته دیگه ای هم که هست میشه یک expire time برای بن بودن آی پی گذاشت که بعد از مدت خاصی آی پی پاک بشه و....
در کل به نظر بنده آی پی در این روش حتی برای جلوگیری از حملات brute force نیز خیلی عالی هستش
خوب معمولاً 90٪ امکانات سایت هم مربوط به کسانی هست که لاگین میکنن و بجز اون، چیزی بیشتر از یک سایت معرفی کننده نخواهیم داشت. درهرصورت چیزی که مسلمه اینه که باید زمان انقضا برای Ban بودن IP بگذاریم ولی باز هم توی مدتی که IP مسدود شده، هیچ کس با اون IP نمیتونه وصل بشه و این یعنی عدم امکان ارائه خدمات به تعداد زیادی از کاربران درحالی که هیچ تخلفی مرتکب نشدن و این مسئله نارضایتی زیادی در پی خواهد داشت. برای جلوگیری از Bruteforce هم روشهای بهتری مثل استفاده از الگوریتم کند برای تولید Hash و نمایش CAPTCHA بعد از چند بار واردکردن رمز اشتباه وجود داره.
کلا قبول دارم جناب شهرکی .... :)
ولی برای قسمت لاگین Admin آی پی دیگه نیازه :)
نمیدونم شاید نظرمون با هم متفاوت باشه ولی در کل من بین Admin و بقیه کاربران فرقی نمیگذارم چون ممکنه که Admin هم با IP های مختلفی بخواد لاگین کنه و اگه یه IP رو مسدود کنیم، شاید اون IP همونی باشه که دفعه بعد Admin باهاش لاگین میکنه یا هر احتمال دیگه. درهرصورت محور اصلی صحبت من اینه که IP معیار محکم و قابل قبول و حتی بهینه ای برای امنیت لاگین نیست.
دقیقا اینجا دیگه باهاتون موافق نیستم
و همچنان می گم که برای admin استفاده از آی پی کاملا می تونه امنیت رو کمی حفظ کنه .....
در هر صورت خودم اگر بخوام سیستمی طراحی کنم حتما این موضوع رو در نظر می گیرم
البته از گفته های قبلی شما هم استفاده می کنم ( همونطور که گفتم موافق جملات قبلیم )
یک روش امنیتی جالبی هم وجود دارد که فیس بوک از آن استفاده می کند.
بر فرض مثال وقتی که من در فیس بوک ثبت نام می کنم آی پی من که بیانگر مشخصات جغرافیایی من هست در پایگاه داده فیس بوک ثبت می شود و زمانی که می خواهم وارد شوم اگر از یک کشور(حالا دقیق نمیدونم کشور رو گیر میده یا شهر یا استان و ...) دیگری وارد شوم فیس بوک اکانت من رو بلاک می کنه و اقدامات لازم رو انجام میدهد.
درود
تضمینی وجود نداره
بعدشم expire time رو گذاشتیم برای همین دیگه ...
و اینکه دسترسی به پنل هاست هست و می تونه از phpmyadmin آی پی خودش رو حذف کنه....
خوب اونوقت من اگه فقط بخوام شما مدیر سایت باشی و مطالب رو تغییر بدی و دسترسی به هاست بهتون ندم چی؟ مدام میخواین زنگ بزنین که Unlock کنمتون یا میخواین تا فردا صبر کنید که Expire بشه؟
من که نگفتم یک آی پی پیش فرض ست کنیم که !
در صورتی که کاربر هنگام ورود اطلاعات کاربری اشتباه وارد کنه ( مثلا 3 بار ) آی پی طرف ثبت بشه و دیگه تا expire time تموم نشده اجازه ورود نداشته باشه ...
ولی در صورتی که اطلاعات صحیح وارد بشن که نیازی به ثبت آی پی نیست ...
مدیر هم باید حواسشو جمع کنه تا اطلاعات رو صحیح وارد کنه
بهرصورت چیزی که مسلمه اینه که استفاده از IP خیلی حساسیت و دقت بالا لازم داره و به هیچ عنوان روش کامل امن و حتی بهینه و مناسبی نیست (در اکثر کاربردها).
ولی به نظر من در بعضی موارد خیلی کاربرد داره
مثلا بگذارید یک مثال بزنم > من مدیر یک سرور اختصاصی هستم که مشتریان زیادی اعم از سرور مجازی و هاست اشتراکی رو روی این سرور دارم . حالا برای اینکه خودم راحت تر باشم و همش نخوام آی پی رو عوض کنم بیام و امنیت کلی سایت و سرویس رو نادیده بگیرم ....
درسته خیلی کارهای دیگه میشه کرد اعم از نصب چندین فایروال و انتی ویروس و انتی شل و ... (حتی فایروال سخت افزاری ) ... ولی خود بنده از محدود کردن آی پی در بسیاری از برنامه ها و ... استفاده می کنم ...
سلام ،من چند بار رمز رو اشتباهی وارد کردم الان قفل شده ،چطور میتونم دوباره با همون سیمکارت دوباره بیام تلگرام؟