PDA

View Full Version : چک کردن عمر لاگین خودکار در سمت سرور



eshpilen
شنبه 30 آذر 1392, 08:57 صبح
فرضا ما برای لاگین خودکار کاربر یک کوکی با طول عمر خاص روی کلاینت ست کردیم.
مثلا کاربر موقع ورود تعیین کرده بوده که برای یک روز یا یک هفته لاگین بمونه.
خب اینجا دو مسئله هست.

یکی اینکه اگر ساعت/تاریخ سیستم کلاینت بهم خورده باشه/بخوره، اونوقت عمر این کوکی میتونه بیشتر یا کمتر بشه. البته بنظرم مشکل از نظر امنیتی فقط در بیشتر شدن عمر این کوکی است، که نباید اینطور باشه.

موضوع بعدی اینه که اگر (محتویات) کوکی لاگین کلاینت به هر نحوی سرقت بشه، اونوقت نفوذگر میتونه از اون برای دسترسی به اکانت کاربر به مدت زمانی که بالقوه میتونه نامحدود باشه استفاده کنه.

ولی اگر ما طول عمر محتویات کوکی رو یجوری در سمت سرور هم چک کنیم، اونوقت این دو مشکل امنیتی حل میشه.

پس بنظرتون این کار رو بکنیم؟
خوبه؟ :متفکر:

eshpilen
شنبه 30 آذر 1392, 09:01 صبح
البته یک مسئلهء کاربری/یوزرفرندلی هم ممکنه با این کار (چک کردن طول عمر کوکی لاگین در سمت سرور) ایجاد بشه، و اون اینکه فرضا اگر کاربر روی چند سیستم با تعیین زمانهای متفاوتی لاگین کرده بود، اونوقت اینها با هم تداخل میکنن، مگر اینکه در سمت سرور براش تمهید خاصی کرده باشیم.
البته بنظر من این مورد چندان مهم نیست و میشه نادیده هم گرفتش!
یعنی کلا لاگین بودن همزمان روی چند سیستم بنظر من زیاد مهم نیست و مسائل امنیتی و مشکلاتی در کل ایجاد میکنه (مثل این مورد، ولی نه فقط این) که اگر بخوایم برنامه رو با اونا تطبیق بدیم کار زیادی میبره و دردسر و حجم و پیچیدگی ایجاد میکنه که بنظرم ارزشش رو نداره.

navid3d_69
یک شنبه 01 دی 1392, 16:12 عصر
خب کوکی معمولا کد میشه یعنی من معمولا اینکارو می کنم می شه زمان ست شدن اون کوکی رو توی کوکی ذخیره کنیم و بعد زمانی که کاربر تعیین کردن مثلا 1 هفته هم توی همون کوکی ثبت بشه اینجوری میشه و چون کد شده کاربر نمی تونه تغییرش بده و نیاز به ساعت و تاریخ کاربر هم نداریم

abolfazl-z
یک شنبه 01 دی 1392, 23:30 عصر
خوب چکاری هست ! چرا اصلا بیاییم طرف کاربر این verify رو انجام بدهیم ؟ خوب برای سشن اون انقضا رو تعریف می کنیم.

ولی در کل از بدترین جهت به این مسئله نگاه کنیم در کل اگر سیستم کاربر (خیلی عادی) هک بشه ! و طرف بتونه به اطلاعات سیستم او دسترسی داشته باشه ، اکانت کاربر هک میشه !

خوب من اینجا یک روشی میگم برای امن کردن ورود کاربر که موووو لا درضش نمیره (شاید هم بره) :D (دارم رویش کار می کنم که توی پروژه ام استفاده کنم)

اگر امنیت برای مان خیلی مهم است میشه یک سری موانع که نه خیر, سد جلوی هکر بگذاریم که باز کارش دشوار تر بشه !

ما بیاییم برای کاربرمون زمان ورود تعیین کنیم ! یعنی هر زمانی نشه وارد شد ! مثلا در 30 ثانیه ساعت فلان و فلان و فلان ...

اما شاید بگویید که کاربر مجبور باشه با اکانت خود در هر زمانی در ارتباط باشه ! اینجا چطور ؟ ؟ ؟ ؟

خوب ما میایییم میگیم آقا ما که شب خوابیم 6-12 صبح اصلا لاگینی صورت نگیره و میگیم از ساعت 7 صبح تا 12 ظهر (و یا ...) در هر ساعت در هر دقیقه در هر ثانیه بین 20 الی 60 ثانیه (و یا ...) بتونییم وارد سایت بشیم !

البته این ایده مشکلات خودش هم به دنبال داره که کمی با فکر و ... میشه حل اش کرد.

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

در هر صورت روش های بالا امنیت لاگین رو بیشتر می کنه نه امنیت دیتا کاربر !

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

مثلا هنگامی که یک کلاینت به سروری وصل میشه در اتصال اول یک کدی برای سرور ارسال میشه و سرور اون رو در خود ذخیره می کند ! و در اتصال دوم به بعد در هر بار اتصال کلاینت به سرور اون مقدار تغییر خواهد کرد بر اساس مقدار اولیه ای که فرستاده شده !

توجه داشته باشید که باید این عملیات را در هر دو طرف انجام بشه یعنی در واقع سرور میدونه که کد بعدی چی هست و کلاینت میدونه که باید چی بفرسته که با هم مچ بشن !

خوب روش های امنیتی که بالا گفتم اینجا خیلی بدرد می خوره چون همه چی در اتصال اول هست !

navid3d_69
دوشنبه 02 دی 1392, 13:04 عصر
اون بحث ساعت که کلا شاید باعث بشه هکر از خنده دیگه به سایت ما نیاد و جلوی هک شدن رو اینطوری بگیره

سایت شما اگر 1000 تا کاربر داشته باشه شاید این روش جواب بده که باز هم نمیده یعنی سایت شما شبا تعطیل میشه و روزا باز میشه مثل سوپر مارکت معمولا سایت رو برای ارائه سرویس 24 ساعت درست می کنند . اون بحث ارسال کد از کلاینت به سرور هم در لاگین این توی همه remeber ها استفاده میشه مگر اینکه امنیت مهم نباشه .

abolfazl-z
سه شنبه 03 دی 1392, 13:51 عصر
اون بحث ساعت که کلا شاید باعث بشه هکر از خنده دیگه به سایت ما نیاد و جلوی هک شدن رو اینطوری بگیره

سایت شما اگر 1000 تا کاربر داشته باشه شاید این روش جواب بده که باز هم نمیده یعنی سایت شما شبا تعطیل میشه و روزا باز میشه مثل سوپر مارکت معمولا سایت رو برای ارائه سرویس 24 ساعت درست می کنند . فکر کنم منظورم رو خوب متوجه نشده اید !

سایت تعطیل نمیشه که ! من برای امنیت ورود کاربر بحث کردم ! اونم میگم دیگه در هر دقیقه و در بین یک ثانیه خاصی وارد سایت بشه ! خوب کاربر میتونه این رو تغییر بده یا اصلا برداره ! حالا نمیدونم چطوری سایت تعطیل میشه !


ارسال کد از کلاینت به سرور هم در لاگین این توی همه remeber ها استفاده میشه مگر اینکه امنیت مهم نباشه . میشه بیشتر توضیح بدین منظورتون رو نفهمیدم !

arta.nasiri
چهارشنبه 04 دی 1392, 16:41 عصر
به نظر منم محدود کردن بازه زمانی لاگین کاربران منطقی نیست! حالا چه این بازه زمانی توسط مدیر سایت باشه یا توسط خود کاربر.

من به شخصه تو پروژه هام تو کوکی فقط یه شناسه یونیک ذخیره میکنم بعد طبق اون شناسه، اطلاعات کاربر و همچنین مدت زمان اعتبار کوکی رو بررسی میکنم. حالا تو مراحل بررسی پارامترهای متعددی رو میشه در نظر گرفت مثل user agent, ip address و ... شناسه یونیکی که تو کوکی ذخیره میکنم هم تو بازه های زمانی مشخصی مثل هر 15 دقیقه یکبار عوض میشه

در مواقعی که امنیت خیلی زیاد واستون مهمه میشه از sms هم استفاده کرد. ولی خب امنیت سمت کاربر هم مهمه که دست ما نیست، خودش باید مراقب خودش باشه تو دنیای مجازی :D