PDA

View Full Version : سوال: cookie or session



sedamorde
سه شنبه 17 دی 1387, 19:10 عصر
دوستان برای ورود به سایت و تشخیص کاربر بهتر از cookie استفاده بشه یا session ؟

yaqubian
چهارشنبه 18 دی 1387, 09:49 صبح
دوست عزیز
session بهتره!!
موفق باشید

as13851365
چهارشنبه 18 دی 1387, 13:04 عصر
ببینید اشتباه نکنید کاربرد هر دو تا حدودی شبیه هم هست با این تفاوت که :

cookie در کامپیوتر کاربر ذخیره می شه ولی session در سرور

یکی از مزایایی که cookie داره این است که کاربران را برای مراجعه بعدی شناسایی می کنه این انجمن از cookie استفاده می کنه gmail از cookie استفاده می کنه


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

درباره امنیت هم اگر برنامه نویسی اشتباه کدنویسی کنه ( با اصول نباشه ) نه session براش امنیت ایجاد می کنه نه cookie ! پس کلا قسمت امنیت بسته به تبهر و دانش کدنویس داره که چه کنه چطور کنه تا امنیت حفظ بشه.

به عنوان مثال هم اگر این انجمن به جای cookie از session استفاده کنه انعطاف سایت خیلی می آید پایین .

پس باید یاد بگیریم که از هر ابزار چطوری و در کجا استفاده کنیم.

sedamorde
چهارشنبه 18 دی 1387, 13:33 عصر
as13851365 جان مرسی , من فکر میکردم امنیت cookie کمتره! بعد که دیدم gmail از cookie استفاده میکنه برام جالب شد.حالا نکته خاصی هست که باید در امنیت cookie استفاده بشه؟
مرسی

اعظم
چهارشنبه 18 دی 1387, 18:13 عصر
بهتر داده های داخل کوکی رو انکد کنی - لینک زیر یک مثال ساده رو نشون میده ولی بهترین کار اینه که خودت برای برنامه های خودت یک الگوریتم انکد و دیکد داشته باشی . کلمه عبور رو هم معمولا در کوکی نگهداری نمی کنن.

http://www.weberdev.com/get_example-4904.html

اینها هم یک سری کلاس آماده است برای کار با کوکی ها شاید به دردت بخوره البته من از کلاسهای زیر استفاده نکردم فقط برات جستجو کردم ;)

http://www.phpclasses.org/browse/package/3545.html
http://www.phpclasses.org/browse/package/2671.html
http://www.phpclasses.org/browse/package/1777.html

sedamorde
چهارشنبه 18 دی 1387, 18:33 عصر
مرسی دوست خوب خیلی کمک کرد , حالا دو تا سوال دیگه هم اگه به من جواب بدید ممنون میشم :)
1- توی بیشتر سایت ها کوکی به نام __utmd و __utmc وجود داره , من نمیدونم این ها ماله چیه!؟
2- تو cookie میشه domain مشخص کرد مثل mysite.com. که وقتی کاربر وارد شد فرق نکنه www را وارد کرده یا به ساب دومین رفته اما تو session نمیدونم چطوری میشه این کار رو کرد و اینکه در ساب دومین هم کار کنه و expire در session چطوری مشخص میشه!؟
مرسی

yaqubian
چهارشنبه 18 دی 1387, 21:11 عصر
دوست عزیز
توضیحات کامل:
http://www.analyticsexperts.com/google-analytics/information-about-the-utmlinker-and-the-__utma-__utmb-and-__utmc-cookies/
موفق باشید

narsic
پنج شنبه 19 دی 1387, 00:18 صبح
دوست عزیز امنیت به کد نویسی شما بستگی داره چون Gmail استفاده میکنه دلیل مناسبی برای استفاده شما نیست .
موفق باشید

amirhosein
پنج شنبه 19 دی 1387, 12:25 عصر
معمول اینه که اطلاعاتی رو توی کوکی ذخیره کنی که حیاتی نباشه (مثل رمز عبور) یا سایت برای انجام کارهای معمولش به وجود کوکی نیازمند نباشه چون امکان بسته بودن ذخیره کوکی در مرورگر کاربر وجود داره.

sedamorde
پنج شنبه 19 دی 1387, 12:36 عصر
مرسی از همه دوستان که لطف میکنن و با حوصله جواب میدن :)
تقریبا من جواب تمام سوال هام رو گرفتم فقط یک نفر لطف میکنه و یک نمونه کد از session برای من میگذاره!؟
استفاده از session رو بلدم فقط نمیدونم چطوری برای دامنه یا قسمت مشخصی تنظیم بشه و چطوری برای expire آن زمان تعریف کرد.

majoran
پنج شنبه 19 دی 1387, 18:33 عصر
البته من تمام راهنمايي هاي بچه ها رو ديدم و بسيار عالي بود ولي بايد به اين نكته توجه كني كه اگه براي كاربرت گزينه مرا به خاطر داشته باش بگزاري بايد از كوكي استفاده كني .و با سشن كارت نميشه
موفق باشيد

اعظم
پنج شنبه 19 دی 1387, 19:59 عصر
مرسی دوست خوب خیلی کمک کرد , حالا دو تا سوال دیگه هم اگه به من جواب بدید ممنون میشم :)
1- توی بیشتر سایت ها کوکی به نام __utmd و __utmc وجود داره , من نمیدونم این ها ماله چیه!؟
2- تو cookie میشه domain مشخص کرد مثل mysite.com. که وقتی کاربر وارد شد فرق نکنه www را وارد کرده یا به ساب دومین رفته اما تو session نمیدونم چطوری میشه این کار رو کرد و اینکه در ساب دومین هم کار کنه و expire در session چطوری مشخص میشه!؟
مرسی
1:
utmd , utmc مربوط به http://localhost است ( بویژه وقتی از پی اچ پی ادمین استفاده کنی اینها ساخته می شوند )و چون روی لوکال داری تست می کنی و همه پروژه های لوکال هم با http://localhost آغاز می شند و در واقع زیر مجموعه لوکال هاست محسوب می شوند برای همه صفحات این دو کوکی رو می بینی.

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

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

هر صفحه یک سیشن می تونه داشته باشه ولی چندین کوکی . بد نیست یک سرچی درباره عملکرد سیشن و کوکی انجام بدی ;)

sedamorde
پنج شنبه 19 دی 1387, 20:01 عصر
البته من تمام راهنمايي هاي بچه ها رو ديدم و بسيار عالي بود ولي بايد به اين نكته توجه كني كه اگه براي كاربرت گزينه مرا به خاطر داشته باش بگزاري بايد از كوكي استفاده كني .و با سشن كارت نميشه
موفق باشيد

majoran جان مرسی. یعنی تمام سایت هایی که (مرا به خاطر بسپار) دارند با cookie کار میکنن؟؟
مشکلم با session سر دومین و ساب دومین نمیدونم چطوری برای هر دو کار کنه!؟

sedamorde
پنج شنبه 19 دی 1387, 20:06 عصر
مرسی از راهنمایی خوبت اعظم جان. اما مثلا اگه به سایت از session وارد بشی در آدرس http://www.mysite.com در http://mysite.com کاربر را نمیشناسه یا مثلا در http://web.mysite.com و تا اینجا که من فهمیدم این کار رو فقط با cookie میشه انجام داد!؟

اعظم
پنج شنبه 19 دی 1387, 20:13 عصر
اره باید کوکی استفاده کنی

سیشن با اولین درخواست صفحه تازه ایجاد میشه و وقتی صفحه رو کلوز کنی درواقع سیشن از بین میره مگر اینکه آدرس http://web.mysite.com به صورت یک لینک در صفحه http://www.mysite.com باشه و کاربر روش کلیک کنه یا اینکه از redirect صفحه http://www.mysite.com باز شده باشه تا بتونه از سیشن http://www.mysite.com استفاده کنه و در غیر اینصورت اگر بروزر جدیدی باز کنی و آدرس http://web.mysite.com بدی یک سیشن جدید برای آن ساخته میشه .

sedamorde
شنبه 21 دی 1387, 13:39 عصر
برای اینکه session روی دومین و ساب دومین ایجاد بشه و یا با www و بدون www کار کنه و بشه مثل cookie بهش آدرس دومین داد من کد زیر را پیدا کردم و کار میکنه ;)


ini_set("session.cookie_domain", ".mysite.com");
session_start();