spsgorgan گفت:
علی آقا میشه یه توضیحی نه چندان زیاد در مورد این مبحث بکنید . بنده علاقه دارم در این مورد بیشتر از اطلاعات شما فیض ببرم .
سلام
شما لطفا دارید. من که چیزی بلد نیستم. php رو با همین انجمن ها شروع کردم. اما در حد معلومات خودم، چشم.
کاربرد session مثل کوکیه با این تفاوت که اطلاعات ذخیره شده در session روی سرور ذخیره میشه نه روی کامپیوتر کلاینت.
برای استفاده صحیح از کوکی و session بهتره اول نحوه کار اونها رو دقیق بفهمیم.
نحوه کار کوکی به این صورته که وقتی شما یک کوکی set میکنید، از سرور یک دستور به مرورگر ارسال میشه مبنی بر اینکه یک کوکی با نام x و مقدار y ذخیره شود. حالا از این به بعد مادامی که کوکی expire نشده، مرورگر در تمام درخواست هایی که به همان سایت ارسال میکنه به سرور میگه که قبلا یک کوکی با نام x و مقدار y ذخیره شده بوده.
اما مشکل کوکی اینه که اطلاعات مهم رو نمیشه تو کوکی ذخیره کرد چون اولا اطلاعات روی کامپیوتر کلاینت ذخیره میشه ثانیا اطلاعات در بین راه قابل sniff شدن هستش.
برای حل این مشکل میشه از session استفاده کرد.
نحوه استفاده از session شباهت زیادی با کوکی داره با این تفاوت که همه اطلاعاتی رو که در session ذخیره میکنید روی سرور ذخیره میشه (به کلاینت ارسال نمیشه).
حالا این سئوال پیش میاد که سرور در درخواست های بعدی مرورگر چطور تشخیص میده که session مربوط به این درخواست کدام است. این کار به صورت پیش فرض توسط کوکی انجام میشه. به این صورت که سرور یک کد 128 بیتی منحصر به فرد که همان session_id هست برای هر session تولید میکنه و این کد رو در کوکی ذخیره میکنه و همچنین اطلاعات session که باید روی سرور ذخیره بشه رو به این کد نسبت میده. حالا سرور در درخواست های بعدی وقتی یک کد session_id رو از کوکی دریافت میکنه میره و اطلاعات مربوط به اون session_id رو در میاره و در اختیار برنامه نویس قرار میده.
نکته 1 : این امکان هم وجود داره که session_id بجای قرار گرفتن در کوکی به صورت پارامتر در انتهای تمام لینک ها قرار بگیره.
نکته 2 : اطلاعات session به صورت پیش فرض در شاخه tmp ذخیره میشه برای بالا بردن امنیت میشه این مسیر رو تغییر داد یا حتی اونها رو در دیتابیس ذخیره کرد.
نکته 3 : برای بالا بردن امنیت در برنامه میتونید ip رو هم چک کنید. چون session خودش اینکار رو انجام نمیده.
امیدوارم مفید بوده باشه
