مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

سوال درباره Session

چهارشنبه, 10 بهمن 1397 10:28

سوال درباره Session

من تیمی دارم روی یه پروژه وبی کار میکنم تو بحث متغیر استاتیک خب به مشکل همزمانی خوردم حالا اومدم از Session استفاده کنم

ولی مشکل اینه آیا راه منطقی هست؟ امنیت Session میگن ضعیفه

من برای لاگینمم از session استفاده کردم راه کا جز session چیه ؟

برای ذخیره نام کاربری از جز session استفاده کنم تو فروم های مختلفی خوندم سشن بده angry

میشه لطفا پاک نکنید به خاطر عنوان نامناسب یا ...wink

چهارشنبه, 10 بهمن 1397 13:16

دوست من دو راه احراز هویت سمت وب هست

اولی اینه که شما از token های stateless مثل JWT استفاده کنی که کاملا سمت کاربر ذخیره میشه و شما فقط یکبار صادر میکنی و دیگه کنترلی روش نداری

که خب این مورد معمولا برای احراز هویت های زمان دار مثل استفاده از سرویس های عمومی گوگل و ... و یا زمانی که به درگاه پرداخت بانکی وصل میشین از token های stateless با زمان انقضای مثلا 10 دقیقه استفاده می‌کنن.

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

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

شما یک id به عنوان Session Id به کاربر میدی که برای امنیت کار باید حواست باشه که Session Id رو از hash شده ی چند مقدار مشخص سمت سرور بسازی. مورد امنیتی بعدی اینه که در این روش حتما و حتما باید Session Id توسط یه پروتکل رمز نگاری نامتقارن مثل https رمز بشه.

حالا اینکه داخل Session مربوطه سمت سرور چه چیزهایی ذخیره میشه به شما ربط داره و اینکه حتی Session رو کجا ذخیره کنی هم باز به شما ربط داره.

بهترین راه نگهداری Session دیتابیس Redis هستش که خارج از نیاز شماست توضیحش.

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

خطر بعدی اینه که یه کاربر بتونه Session Id رو سمت خودش تغییر بده و بفرسته سمت سرور تا اینطوری سرور فکر کنه که این درخواست توسط شخص دیگری ارسال شده!

برای این موضوع هم شما نباید Session Id رو عدد بدی و یا مقادیر قابل حدس زدن! و اینکه SessionId رو داخل token احراز هویت نگهداری میکنی تا حتی توسط کاربر هم قابل خوندن نباشه.

مواردی که گفتم رو رعایت کن و نگران هیچ چیز در این قسمت نباش.

موفق باشی.

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید