PDA

View Full Version : سوال: بهترین و امن ترین روش برای لاگین نگه داشتن کاربر ؟



aliphp1
یک شنبه 18 آبان 1393, 12:40 عصر
سلام دوستان
من می خوام بهترین روش برای اینکه کاربر رو لاگین نگه دارم رو پیدا کنم
مثلا مثل همین سایت که یکبار که لاگین می کنی تا مدتی نیاز به لاگین نیست و به محض اینکه سایت رو باز کنی لاگین هستی حالا در این بین مرورگر رو ببنیدی یا سیستم رو خاموش و روشن کنی باز هم لاگین هستی
حالا من روشی می خوام که امنیتش خیلی بالا باشه و فقط روی همون کامپیوتری که کاربر لاگین کرده دوباره لاگین باشه
مثلا اگر از ی کوکی استفاده کنیم و کوکی دزدیده بشه چیکار کنیم ؟
چطور میشه با php آی دی منحصر به فرد سخت افزار رو پیدا کرد ؟
اگر بشه این کار رو رد میشه در دیتابیس به همراه زمان ذخیره کرد و از اون طریق کاربری که خواسته لاگین بمونه رو شناسایی کرد
دوستان لطفا کمک کنید

aliphp1
یک شنبه 18 آبان 1393, 14:44 عصر
دوستان کسی کمک نمی کنه ؟

php_programmer021
یک شنبه 18 آبان 1393, 19:20 عصر
با سلام
برای لاگین نگه داشتن کاربر از کوکی استفاده می شه و خب برای اون کوکی زمان مشخص می کنیم و بر طبق اون زمان کاربر ما با اون کوکی آنلاین می مونه.
اما یسری اطلاعات دیگه هم هست که می تونی موقع لاگین از کاربر بگیر مثل آدرس ip,browser,Os و ... خب اینا رو هم می تونی لاگ کنی برای مواقع مورد نیاز.

Unique
دوشنبه 19 آبان 1393, 00:04 صبح
من می خوام بهترین روش برای اینکه کاربر رو لاگین نگه دارم رو پیدا کنم
لاگین نگه داشتن کاربر باید زماین انجام بشه که اولا خودش بخواد و ثانیا اطلاعات مهمی در صورت استفاده کاربر دیگه در حالت auto login نباشه ! به همین خاطر هست که زمان تغییر کلمه عبور از شما کلمه عبور فعلی را می پرسن ! اما کلا باید سناریو کامل بررسی بشه و نقاط ضعف مشخص بشه.


مثلا اگر از ی کوکی استفاده کنیم و کوکی دزدیده بشه چیکار کنیم ؟
session ها هم از کوکی استفاده میکنند و زیاد در موردش توی انجمن بحث شده ! جستجو کنید.


چطور میشه با php آی دی منحصر به فرد سخت افزار رو پیدا کرد ؟
امکان گرفتن یک رشته منحصر به فرد برای شناسایی یک سیستم به صورت ۱۰۰ درصد وجود نداره. میتونید از fingerprint (https://github.com/Valve/fingerprintjs) هم استفاده کنید اما ۱۰۰ درصد جواب نمیده.

h.rezaee
دوشنبه 19 آبان 1393, 07:56 صبح
سلام به همه دوستان ببخشید که اینجا سوالم رو مطرح میکنم؟
اگر ما بخواهیم در یک لحظه با یک user & pass فقط و فقط یک نفر لاگین باشه باید چکار کنیم؟
به عنوان مثال در DB یک یوز با نام Hossein و با پسورد 123 وجود دارد. من میخوام زمانی که بنده با این user&pass تو کامپیوتر خودم لاگین هستم ، تا زمانی که بنده لاگین هستم نشه با کامپیوتر دیگه ایی با همین user&pass لاگین کرد?!?!?!?!?!?!?!?!?!?!?!?!!?!

Unique
دوشنبه 19 آبان 1393, 11:27 صبح
به عنوان مثال در DB یک یوز با نام Hossein و با پسورد 123 وجود دارد. من میخوام زمانی که بنده با این user&pass تو کامپیوتر خودم لاگین هستم ، تا زمانی که بنده لاگین هستم نشه با کامپیوتر دیگه ایی با همین user&pass لاگین کرد?

کار خاصی نباید بکنی ! توی database کاربرایی که Login هستند و هنوز expire نشدن را نگه داری ! اگه کسی خواست با نام کاربری در شرایطی که گفتم وارد بشه اجازه ندی ! البته توی این شرایط auto login مسخرست ! حتما باید expire بشه در صورتی که کاربری مثلا نیم ساعت فعالیتی نداشت.

Mori Bone
دوشنبه 19 آبان 1393, 12:06 عصر
سلام به همه دوستان ببخشید که اینجا سوالم رو مطرح میکنم؟
اگر ما بخواهیم در یک لحظه با یک user & pass فقط و فقط یک نفر لاگین باشه باید چکار کنیم؟
به عنوان مثال در DB یک یوز با نام Hossein و با پسورد 123 وجود دارد. من میخوام زمانی که بنده با این user&pass تو کامپیوتر خودم لاگین هستم ، تا زمانی که بنده لاگین هستم نشه با کامپیوتر دیگه ایی با همین user&pass لاگین کرد?!?!?!?!?!?!?!?!?!?!?!?!!?!

وقتی کاربر لاگین کرد، می تونی سشن ورود رو توی دیتابیس ذخیره کنید و در هر لاگین چک کنی ببینی این نام کاربری ای که کاربر می خواد باهاش ورود کنه داخله دیتابیس هست یا نه. اگه بود که یعنی شخص دیگری در کامپیوتر دیگری ورود کرده
آموزش ذخیره سازی سشن در دیتابیس تو امضام هست

aliphp1
شنبه 24 آبان 1393, 11:09 صبح
وقتی کاربر لاگین کرد، می تونی سشن ورود رو توی دیتابیس ذخیره کنید و در هر لاگین چک کنی ببینی این نام کاربری ای که کاربر می خواد باهاش ورود کنه داخله دیتابیس هست یا نه. اگه بود که یعنی شخص دیگری در کامپیوتر دیگری ورود کرده
آموزش ذخیره سازی سشن در دیتابیس تو امضام هست

سلام
امضا که ندارید دوست عزیز
ممنون از توضیحات تون فقط یک چیزی ذهن منو مشغول کرده
بینید درست میگم ؟
سشن یک کوکی توی سیستم کاربر ذخیره می کنه که توش سشن آی دی هست
حالا اگر کس دیگه ای پست سیستم بشینه و این کوکی رو برداره و ببره توی یک سیستم دیگه بذاره (حالا به هر روشی که می تونه )
اون موقع لاگین میشه ؟
من برای لاگین علاوه بر سشن از آی پی و مرورگر و یکسری چیزای دیگه هم استفاده می کنم
برای اتو لاگین ممکنه مثلا آی پی تغییر کرده باشه چیکار باید بکنم ؟

eshpilen
شنبه 24 آبان 1393, 11:17 صبح
سشن یک کوکی توی سیستم کاربر ذخیره می کنه که توش سشن آی دی هست
حالا اگر کس دیگه ای پست سیستم بشینه و این کوکی رو برداره و ببره توی یک سیستم دیگه بذاره (حالا به هر روشی که می تونه )
اون موقع لاگین میشه؟
اگر به IP اینا وابسته نکرده باشی بله میشه.


من برای لاگین علاوه بر سشن از آی پی و مرورگر و یکسری چیزای دیگه هم استفاده می کنم
برای اتو لاگین ممکنه مثلا آی پی تغییر کرده باشه چیکار باید بکنم ؟
مشکل وابسته کردن به IP همینه دیگه.
تازه اگر این کار خوبی بود و صرف میکرد این همه سایت و نرم افزار معروف باید از این روش استفاده میکردن، اما چیزی که من تاحالا دیدم بیشتر غیر از این بوده و بیشتر سایتها و نرم افزارها با IP کاری ندارن.
البته شما این امکان رو بصورت آپشنال در برنامتون بذارید بد نیست که خیلی هم خوبه (و حتی شاید لازم).

alinwp
شنبه 24 آبان 1393, 14:42 عصر
شما میتونید از سشن ها استفاده کنید اما به دلیل امنیت و امکان دزدید شدن میتونید اون رو چند بار باچند اگریتم مختلف هش کنید (کاری که در ویندوز 7 شده و رمز عبور سه بار md4) شده
و در هنگام شرط با استفاده از تکرار دوباره تولید کنید و چک کنید که آیا این با اون برابره اگه بله کاربر رو لاگین نگه دارید
این راه منه ممکنه کسی خوشش هم نیاد ولی این راه خود بنده است

aliphp1
یک شنبه 25 آبان 1393, 15:23 عصر
شما میتونید از سشن ها استفاده کنید اما به دلیل امنیت و امکان دزدید شدن میتونید اون رو چند بار باچند اگریتم مختلف هش کنید (کاری که در ویندوز 7 شده و رمز عبور سه بار md4) شده
و در هنگام شرط با استفاده از تکرار دوباره تولید کنید و چک کنید که آیا این با اون برابره اگه بله کاربر رو لاگین نگه دارید
این راه منه ممکنه کسی خوشش هم نیاد ولی این راه خود بنده است

برای رمز من معمولا این کارا رو می کنم و شاید هم ترکیب چند تا هش
اما برای کوکی نمی دونم چه مزیتی می تونه داشته باشه ؟
طرف که نمیاد کوکی سشن رو رمز کشایی کنه فقط اونو انتقال میده به یک سیستم دیگه و همین هم براش کافیه
----------------------------------------------------------------------
پس در مجموع دوستان می فرمایند که وقتی از آی پی استفاده شده نمیشه اتولاگین گذاشت دیگه درسته ؟

aliphp1
پنج شنبه 29 آبان 1393, 21:37 عصر
دوستان کسی نظری نداشت ؟

Mori Bone
پنج شنبه 29 آبان 1393, 21:57 عصر
سلام
امضا که ندارید دوست عزیز

شما نمایش امضا دیگرا کاربران رو فعال نکردید.
ذخیره سازی سشن ها در دیتابیس (http://barnamenevis.org/showthread.php?466527-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%B3%D8%B4%D9%86-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-PDO)


شما برای هر کاربر یه کلید رندوم که طولش 42 هستش رو درنظر بگیر که با لاگین یا لاگ اوت یا هرکار دیگه عوض بشه. حالا این کد رو هش کد و بگذار داخله کوکی همراه با شماره آیدی طرف. البته راه زیاده....

abolfazl-z
پنج شنبه 29 آبان 1393, 23:05 عصر
http://barnamenevis.org/showthread.php?472793-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%AF%D8%B1-%DA%A9%D9%88%DA%A9%DB%8C