PDA

View Full Version : شناخت کاربر انلاین و login شده



barnamenevis2016
شنبه 12 اردیبهشت 1394, 13:50 عصر
سلام....فرض کنید که کاربری user و pass خودش رو می زنه و بعد اسکریپتی نوشتیم که چک کنه آیا این دو user و pass با هم متچش هستن یا نه...اگر متچ بودن بهترین طریق و امن ترین راهی که اون کاربر رو آنلاین و login شده بشناسیم و اون کاربر به هر صفحه وب ما رفت...login شده بره چیه؟؟؟
من به نظرم میاد که الگوریتمش اینطوریه:
کاربری که user و pass خودش رو وارد کرد و این دو متچ بودن و در پایگاه داده بودن و صحیح بودن خلاصه....اسکریپتی بنویسیم که IP اون کاربر رو به همراه userName اش در پایگاه داده ذخیره کنه...بعد حالا هر وقت کاربر به صفحه ای رفت...اسکریپتی بنویسم که ابتدا بیاد ببینه که IP کاربر در پایگاه داده مربوط به ONLIN ها موجوده یا نه..و اگر موجوده با چه user ای..و بعد مطابق اون user برای کاربر صفحه login شده رو نشون بدیم....خوب من خیلی با تجربه نیستم...این روشی بود که به ذهنم رسید و بعید می دونم درست باشه!...حالا چه روش بهتری موجود و من باید چه کنم...؟؟و بعد اگر روشی که من رفتم درست باشه من چیکار کنم که اگر کاربر مثلا تا ده دقیقه روی صفحه ای کلیک نکرد...IP اون کاربر از پایگاه داده بخش online ها خارج بشه و به قولی کاربر logout بشه و ofline بشه؟
ممنونم...کمی مفصل و آماتوری توضیح بدید که متوجه بشیم و یا بشم...و اینکه از چه دستوراتی باید استفاده کنم....
مرسی

MMSHFE
شنبه 12 اردیبهشت 1394, 14:27 عصر
لازم نیست. کافیه برای کاربر یک سشن ست کنید و با اون سشن کار کنید. حالا بحث امنیت رو هم اشاره کردین، میتونید فرضاً توی هر درخواست با session_regenerate_id بیاین شناسه session رو عوض کنید تا بحث Session Fixation و Hijacking منتفی بشه یا اینکه توی سشن، IP و User Agent و... رو هم ذخیره کنید و یکسری کارهای دیگه ولی واقعاً توی خیلی از پروژه ها این حد از امنیت ضروری نیست. مدیریت سشن توی سرور خودکاره و بعد از مدت مشخصی عدم فعالیت که قابل تنظیم هم هست، بطور خودکار حذف میشه و اگه کاربر مرورگر رو هم ببنده، دیگه سشن قبلی براش اعتبار نداره.

MMSHFE
شنبه 12 اردیبهشت 1394, 14:29 عصر
حالا اگه منظور شما بحث نشون دادن کاربران آنلاین هست، میتونید سشن رو توی دیتابیس ذخیره کنید که قبلاً توی همین تالار توضیح دادم و کلاسش رو هم بعنوان نمونه گذاشتم (بگردین پیدا میکنید) و میتونید کاربران آنلاین و... رو به راحتی شناسایی کنید. مدیریت سشنها هم دست خود PHP باقی میمونه و شما زحمت اضافه لازم نیست بکشین.