PDA

View Full Version : کوکی و سشن



m_karimi
جمعه 28 آبان 1389, 00:10 صبح
سلام

میشه در مورد مکانیزم دقیق سیستم کوکی ها و سشن ها در سرویس دهنده و سرویس گیرنده توضیح بدهید.
و اینکه توابع مربوط مثلا setcooki() یا session_start() و $_COOKIE و $_SESSION دقیقا چه فرآیندی رو روی سرویس دهنده و سرویس گیرنده اجرا می کنن؟

funpatogh
جمعه 28 آبان 1389, 00:16 صبح
منظورتون اینه که هر کدام از اینها که سوال کردید چه فرقی با هم دارند و هر کدام کارشون چیست؟

m_karimi
جمعه 28 آبان 1389, 00:36 صبح
من این مطلب رو خوندم
http://www.atcce.com/%D8%B9%D9%84%D8%A7%D9%85%D9%87_%D8%B7%D8%A8%D8%A7% D8%B7%D8%A8%D8%A7%DB%8C%DB%8C/%DA%A9%D9%88%DA%A9%DB%8C_%D9%87%D8%A7_%D8%A7%D8%B2 _%D8%AA%D8%AE%DB%8C%D9%84_%D8%AA%D8%A7_%D9%88%D8%A 7%D9%82%D8%B9%DB%8C%D8%AA-1477.htm

ولی در بخش انتقال کوکی ها و استفاده از کوکی ها عملکرد را دقیقا متوجه نشدم. اگر مطلبی در این زمینه دارید ممنون می شوم. در مورد سشن ها هم همینطو رو چه طور سرویس دهنده وقتی چند سشن تعریف شده باشد، می تواند تشخیص دهد؟

xoogle.ir
جمعه 28 آبان 1389, 09:20 صبح
وقتی کاربری وارد سایت شما میشه و یک سشن ساخته میشه یک آیدی منحصر به فرد برای همون کاربر ساخته میشه و سرور از طریق این آیدی میتونه تشخیص بده که چه سشن هایی متعلق به چه کاربری است.

این آیدی درون یک کوکی در کامپیوتر کاربر ذخیره میشه و با هر بار درخواست به سرور فرستاده میشه.

m_karimi
جمعه 28 آبان 1389, 19:36 عصر
با تشکر از پاسخ خوبتون
وقتی کاربر وارد سایت می شه بر جه اساسی این آیدی ساخته می شه که وقتی مجددا همون کاربر وارد شد، ای آیدی منحصر به فرد تشخیص داده می شه؟ (مثلا بر اساس ip سیستم، بر چه اساسی آیدی یک کاربر ساخته می شه؟)

funpatogh
جمعه 28 آبان 1389, 23:49 عصر
شناسه جلسه بر اساس هش MD5 روی آدرس آی پی کاربر و زمان فعلی و یک داده تصادفی که نتیجش میشه یک رشته هگزا دسیمال بروی هارد سرور ذخیره میشود که این شناسه به صورت یک کوکی به نام PHPSESSID به مرورگر کاربر فرستاده میشود و در مراجه بعدی کاربر, مرورگر کوکی PHPSESSID رو برای سرویس دهنده می فرستد و بر اساس این کوکی اطلاعات فایل جلسه خوانده می شود و مورد استفاده قرار میگیرد

idocsidocs
شنبه 29 آبان 1389, 00:55 صبح
شناسه جلسه بر اساس هش MD5 روی آدرس آی پی کاربر و زمان فعلی و یک داده تصادفی که نتیجش میشه یک رشته هگزا دسیمال بروی هارد سرور ذخیره میشود که این شناسه به صورت یک کوکی به نام PHPSESSID به مرورگر کاربر فرستاده میشود و در مراجه بعدی کاربر, مرورگر کوکی PHPSESSID رو برای سرویس دهنده می فرستد و بر اساس این کوکی اطلاعات فایل جلسه خوانده می شود و مورد استفاده قرار میگیرد

چطور می تونیم کوکی PHPSESSID رو طوری تنظیم کنیم که 5 ساعت روی کامپیوتر کاربر باقی بمونه؟

همچنین لطفا یه مثال از تابع setcookie بزنید که علاوه بر نام و مقدار کوکی، هاست، مسیر و امنیت کوکی به وسیله این تابع تنظیم شده.

funpatogh
شنبه 29 آبان 1389, 01:01 صبح
setcookie('name','value',time()+3600,'/dir/','domain.com','1');
اگر از HTTPS استفاده میکنید گزینه آخر رو 1 کنید در غیر این صورت خالی بگزارید

idocsidocs
شنبه 29 آبان 1389, 01:18 صبح
setcookie('name','value',time()+3600,'/dir/','domain.com','1');
اگر از HTTPS استفاده میکنید گزینه آخر رو 1 کنید در غیر این صورت خالی بگزارید

اگر مرورگر کاربر HTTPS رو پشتیبانی نکنه یا کاربر اون رو غیر فعال کرده باشه و ما حالت امنیتی کوکی رو روی 1 تنظیم کرده باشیم، ممکنه که کوکی ارسال نشه یا موقع دریافت کوکی با مشکل مواجه بشیم؟

funpatogh
شنبه 29 آبان 1389, 01:34 صبح
عزیز ssl توسط هاست پشتیبانی میشه
یعنی شما اگر اطلاعات خیلی مهمی رو برای کاربر ارائه میدهید مثل بانک ها و ...
اونوقت از ssl استفاده میکنند و اگر بخواهند که کوکی به سیستم کاربر ارسال کنند این گزینه آخر رو فعال میکنند در غیر این صورت مقداری براش تعریف نمیکنند

eshpilen
یک شنبه 30 آبان 1389, 11:07 صبح
سشن هم خودش از كوكي استفاده ميكنه.
براي ذخيره سازي سمت سرور از فايل استفاده ميكنه كه البته ميشه بصورت ديتابيس درآوردش.
كوكي مثل يك دستگاه اساسي هست كه بعنوان جزيي اساسي از دستگاههاي بزرگتر و پيچيده تري مثل سشن استفاده ميشه. سشن فقط كار شما رو راحت كرده كه ديگه نياز نداشته باشيد براي هركاري سيستم كامل مديريت هويت و داده هاي كاربر خودتون رو بر اساس كوكي طراحي كنيد، اما براي هركاربردي هم كافي و مناسب نيست.

alonemm
یک شنبه 30 آبان 1389, 11:30 صبح
این دو مبحث هر دو دارای نکات قوت و ضعف هستند اگه اطلاعات شما از نظر امنیتی دارای ارزش پایینی هست میتونید از کوکی استفاده کنید و در غیر این صورت از سشن.

idocsidocs
یک شنبه 30 آبان 1389, 11:35 صبح
سشن هم خودش از كوكي استفاده ميكنه.
براي ذخيره سازي سمت سرور از فايل استفاده ميكنه كه البته ميشه بصورت ديتابيس درآوردش.
كوكي مثل يك دستگاه اساسي هست كه بعنوان جزيي اساسي از دستگاههاي بزرگتر و پيچيده تري مثل سشن استفاده ميشه. سشن فقط كار شما رو راحت كرده كه ديگه نياز نداشته باشيد براي هركاري سيستم كامل مديريت هويت و داده هاي كاربر خودتون رو بر اساس كوكي طراحي كنيد، اما براي هركاربردي هم كافي و مناسب نيست.

می شه بگید که سسشن برای چه کارهایی مناسب نیست؟

eshpilen
یک شنبه 30 آبان 1389, 18:13 عصر
می شه بگید که سسشن برای چه کارهایی مناسب نیست؟
سیستم سشن خصوصیات فنی و ناپایداری ای داره که در بعضی جاها اشکال ایجاد میکنه و یا کافی نیست.
مثلا بنده قبلا یک سیستم رجیستر و لاگین درست کرده بودم (در تالار PHP هم در دسترس هست) و با سشن کار میکنه، اما علاوه بر سشن، یک سیستم تعیین و ذخیرهء هویت کامل با کوکی و دیتابیس هم داره و مثلا وقتی سشن به هر علتی از بین میره، برنامه با استفاده از کوکی خودش و دیتابیس هویت کاربر رو معلوم میکنه و بر اساس اون سشن رو هم مجددا تولید میکنه تا دفهء بعدی دوباره از سشن استفاده بشه.
من خیلی وقته با PHP کار نکردم و اون پروژه هم مال خیلی وقت پیشه و یادم نیست، اما این یک مورد رو به یادم رسید. روی سشن از لحاظ ماندگاری نمیشه زیاد حساب کرد و ممکنه به دلایل مختلفی، قبل از زمانی که شما انتظار دارید پاک بشه. البته حداقل در دوران PHP4 اینطور بود!

البته برنامهء بنده براحتی قابل پیکربندی هست که بدون سشن هم کار بکنه. اما درحالت معمول از سشن استفاده میکنه چون سشن بصورت پیشفرض برای ذخیرهء اطلاعاتش از سیستم فایل استفاده میکنه و بنظرم از دیتابیس سریعتر و سبکتر هست. ضمنا چون خیلی هم معمول هست و در برنامه های دیگه و در بخشهای دیگر ممکنه بکار بره، میشه ازش برای بخشهای دیگر برنامه هم استفاده کرد تا به این وسیله برنامه با کارایی بیشتر و منسجم تر عمل کنه. البته ممکنه این کارها ضرورتی هم نداشته باشه :چشمک:

idocsidocs
یک شنبه 30 آبان 1389, 18:50 عصر
سیستم سشن خصوصیات فنی و ناپایداری ای داره که در بعضی جاها اشکال ایجاد میکنه و یا کافی نیست.
مثلا بنده قبلا یک سیستم رجیستر و لاگین درست کرده بودم (در تالار PHP هم در دسترس هست) و با سشن کار میکنه، اما علاوه بر سشن، یک سیستم تعیین و ذخیرهء هویت کامل با کوکی و دیتابیس هم داره و مثلا وقتی سشن به هر علتی از بین میره، برنامه با استفاده از کوکی خودش و دیتابیس هویت کاربر رو معلوم میکنه و بر اساس اون سشن رو هم مجددا تولید میکنه تا دفهء بعدی دوباره از سشن استفاده بشه.
من خیلی وقته با PHP کار نکردم و اون پروژه هم مال خیلی وقت پیشه و یادم نیست، اما این یک مورد رو به یادم رسید. روی سشن از لحاظ ماندگاری نمیشه زیاد حساب کرد و ممکنه به دلایل مختلفی، قبل از زمانی که شما انتظار دارید پاک بشه. البته حداقل در دوران PHP4 اینطور بود!

البته برنامهء بنده براحتی قابل پیکربندی هست که بدون سشن هم کار بکنه. اما درحالت معمول از سشن استفاده میکنه چون سشن بصورت پیشفرض برای ذخیرهء اطلاعاتش از سیستم فایل استفاده میکنه و بنظرم از دیتابیس سریعتر و سبکتر هست. ضمنا چون خیلی هم معمول هست و در برنامه های دیگه و در بخشهای دیگر ممکنه بکار بره، میشه ازش برای بخشهای دیگر برنامه هم استفاده کرد تا به این وسیله برنامه با کارایی بیشتر و منسجم تر عمل کنه. البته ممکنه این کارها ضرورتی هم نداشته باشه :چشمک:

سلام

راستش دلایلتون زیاد قانع کننده نبود. چون دقیقا توضیح ندادید.

یه سوال می شه بگید چرا طراحی با پی اچ پی رو کنار گذاشتید؟

eshpilen
یک شنبه 30 آبان 1389, 19:40 عصر
سلام
راستش دلایلتون زیاد قانع کننده نبود. چون دقیقا توضیح ندادید.

در چه زمینه ای؟
تاجایی که من یادمه فایلهای مربوط به سشن PHP میتونستن بصورت غیرمنتظره از روی سرور پاک بشن. یعنی تضمینی نیست اگر شما طول عمر سشن رو 24 ساعت تعیین کردید، واقعا تا 24 ساعت دیگه حتما اطلاعات سشن روی سرور حفظ بشن. این احتمالا بخاطر تداخل و دستکاری تنظیمات سیستم سشن توسط اسکریپت های دیگر هست. البته گفتم که در زمان PHP4 اینطور بود و الان خبر ندارم چه تغییراتی کرده یا نکرده. بهرحال من این مسئله رو عملا تست کردم و دیدم.


یه سوال می شه بگید چرا طراحی با پی اچ پی رو کنار گذاشتید؟کنار نذاشتم؛ فعلا کار نمیکنم و مدت احتمالا یکی دو سالی هست کار بخصوصی باهاش نکردم. PHP چیز خوبیه. دوستش دارم و بازمتن بودن هم از نظرم یک مزیتش هست.
اون پروژهء رجیستر و لاگین اولین پروژهء من بعد از خوندن PHP Manual بود که بعنوان پروژهء تمرینی بعد از یادگیری PHP انجامش دادم تا احاطه پیدا کنم و یادگیری خودم رو محک بزنم و چیزهایی که خوندم در ذهنم تثبیت بشن. بعدش رفتم دنبال یادگیری زبانهای دیگری برای نوشتن برنامه های دیگه مثل برنامه های دسکتاپ. چون علاقه داشتم بتونم هم در حیطهء دسکتاپ برنامه بنویسم و هم در حیطهء وب. نمیتونستم به یکیش اکتفا کنم. ضمنا بلد بودن دوتا حیطه باعث میشه آدم بتونه برنامه های چند حیطه ای بنویسه که امروزه دیگه خیلی طبیعی بحساب میان و بعضی جاها ضروری هستن.
الان هم هنوز درحال یادگیری هستم و فکر کنم دات نت که دارم یاد میگیرم آخریش باشه. بعدش احتمالا برمیگردم و چنتا از پروژه های PHP خودم رو هم تکمیل و اصلاح میکنم.
من هیچوقت بیکار نبودم. در این مدت چند مورد مهم از زبانها و فناوریهای دیگه رو یاد گرفتم. مثلا فلش و اکشن اسکریپت هم جزوش بود که مربوط به برنامه نویسی وب میشه.

idocsidocs
یک شنبه 30 آبان 1389, 20:57 عصر
در چه زمینه ای؟
تاجایی که من یادمه فایلهای مربوط به سشن PHP میتونستن بصورت غیرمنتظره از روی سرور پاک بشن. یعنی تضمینی نیست اگر شما طول عمر سشن رو 24 ساعت تعیین کردید، واقعا تا 24 ساعت دیگه حتما اطلاعات سشن روی سرور حفظ بشن. این احتمالا بخاطر تداخل و دستکاری تنظیمات سیستم سشن توسط اسکریپت های دیگر هست. البته گفتم که در زمان PHP4 اینطور بود و الان خبر ندارم چه تغییراتی کرده یا نکرده. بهرحال من این مسئله رو عملا تست کردم و دیدم.

کنار نذاشتم؛ فعلا کار نمیکنم و مدت احتمالا یکی دو سالی هست کار بخصوصی باهاش نکردم. PHP چیز خوبیه. دوستش دارم و بازمتن بودن هم از نظرم یک مزیتش هست.
اون پروژهء رجیستر و لاگین اولین پروژهء من بعد از خوندن PHP Manual بود که بعنوان پروژهء تمرینی بعد از یادگیری PHP انجامش دادم تا احاطه پیدا کنم و یادگیری خودم رو محک بزنم و چیزهایی که خوندم در ذهنم تثبیت بشن. بعدش رفتم دنبال یادگیری زبانهای دیگری برای نوشتن برنامه های دیگه مثل برنامه های دسکتاپ. چون علاقه داشتم بتونم هم در حیطهء دسکتاپ برنامه بنویسم و هم در حیطهء وب. نمیتونستم به یکیش اکتفا کنم. ضمنا بلد بودن دوتا حیطه باعث میشه آدم بتونه برنامه های چند حیطه ای بنویسه که امروزه دیگه خیلی طبیعی بحساب میان و بعضی جاها ضروری هستن.
الان هم هنوز درحال یادگیری هستم و فکر کنم دات نت که دارم یاد میگیرم آخریش باشه. بعدش احتمالا برمیگردم و چنتا از پروژه های PHP خودم رو هم تکمیل و اصلاح میکنم.
من هیچوقت بیکار نبودم. در این مدت چند مورد مهم از زبانها و فناوریهای دیگه رو یاد گرفتم. مثلا فلش و اکشن اسکریپت هم جزوش بود که مربوط به برنامه نویسی وب میشه.


من به برنامه نویسی علاقه دارم ولی دانشگاه نرفتم. الان هم دارم طراحی وب یاد می گیرم که کار کنم.

می شه بگید شما توی چه رشته ای تحصیل می کنید و بنظرتون می شه روی طراحی وب سایت به عنوان کار دوم حساب باز کرد؟

eshpilen
یک شنبه 30 آبان 1389, 22:30 عصر
من به برنامه نویسی علاقه دارم ولی دانشگاه نرفتم. الان هم دارم طراحی وب یاد می گیرم که کار کنم.

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

می شه بگید شما توی چه رشته ای تحصیل می کنید و بنظرتون می شه روی طراحی وب سایت به عنوان کار دوم حساب باز کرد؟
کاردانی کاربرد رایانه دانشگاه آزاد. بنظرم میشه گفت همون نرم افزار (چون بیشترش نرم افزاره).
البته تحصیلم خیلی وقته تموم شده در دانشگاه، ولی از اون موقع خودم همیشه دانشجو بودم و درواقع خیلی فعال تر و پربارتر از دانشگاه کار کردم. ولی دانشگاه هم مزایا و خواص و دانش های ضروری خاص خودش رو ببار میاره که من اینو بعدا خیلی بیشتر فهمیدم، وگرنه در دوران دانشگاه درس رو جدی تر میگرفتم.
کار دوم؟ کار اولتون چیه؟
روی طراحی وبسایت میشه حساب کرد؛ چون از سطوح پایین تا بالا میشه کار کرد و تقاضا و درآمدش هم بد نیست. برای سطوح بالا و طراحی کامل و سفارشی نیاز به وقت و سواد کافی هست، ولی میشه خیلی پروژه ها رو با چیزهایی مثل CMS های متعدد بازمتن و رایگانی که PHP داره انجام داد که یادگیری و انجامشون راحت و سطح پایین هست.
البته من تجربهء حرفه ای و تجاری خاصی ندارم و فقط یکی دو مورد کار تجاری انجام دادم. بهتره از افرادی که بیشتر بصورت شغلی کار کردن هم سوال کنید.

idocsidocs
یک شنبه 30 آبان 1389, 23:42 عصر
سعی کنید برید. همون دو سال کاردانی هم که بنده رفتم خیلی مفید بود و هروقت شرایط رو بهینه ببینم ادامه میدم.
کاردانی کاربرد رایانه دانشگاه آزاد. بنظرم میشه گفت همون نرم افزار (چون بیشترش نرم افزاره).
البته تحصیلم خیلی وقته تموم شده در دانشگاه، ولی از اون موقع خودم همیشه دانشجو بودم و درواقع خیلی فعال تر و پربارتر از دانشگاه کار کردم. ولی دانشگاه هم مزایا و خواص و دانش های ضروری خاص خودش رو ببار میاره که من اینو بعدا خیلی بیشتر فهمیدم، وگرنه در دوران دانشگاه درس رو جدی تر میگرفتم.
کار دوم؟ کار اولتون چیه؟
روی طراحی وبسایت میشه حساب کرد؛ چون از سطوح پایین تا بالا میشه کار کرد و تقاضا و درآمدش هم بد نیست. برای سطوح بالا و طراحی کامل و سفارشی نیاز به وقت و سواد کافی هست، ولی میشه خیلی پروژه ها رو با چیزهایی مثل CMS های متعدد بازمتن و رایگانی که PHP داره انجام داد که یادگیری و انجامشون راحت و سطح پایین هست.
البته من تجربهء حرفه ای و تجاری خاصی ندارم و فقط یکی دو مورد کار تجاری انجام دادم. بهتره از افرادی که بیشتر بصورت شغلی کار کردن هم سوال کنید.

من PHP رو فعلا در حد نوشتن اسکریپت های ثبت نام و لاگین، آپلود عکس و طراحی اسکریپتهای مورد نیاز برای شبکه های اجتماعی بلدم.

CSS رو هم کار کردم و همه دستوراتش رو بلدم.

Javascript رو خوندم ولی بخوبی یادش نگرفتم. بیشتر از کدهای آماده استفاده می کنم ولی موتونم کدهای آماده رو تغییر بدم.

الانم مشغول یادگیری تکنولوژی اجاکس هستم.

بنظرتون الان کار رو شروع بکنم یا اینکه هنوز زوده؟

منظورم طراحی وب سایت هست.

eshpilen
دوشنبه 01 آذر 1389, 09:07 صبح
کدوم کار؟
...