PDA

View Full Version : گفتگو: Cookie



bbhbbh
شنبه 06 دی 1393, 13:47 عصر
با سلام و روز بخیر
من صفحه لاگین دارم و با تیک زدن مرا بخاطر بسپار میخواهم از دفعه بعد
لاگین خودکار باشد ، در این باره چند تا سوال دارم .

1- سایت های بزرگی مثل Fb این کار چطور انجام می دهند ؟

2-ایا کوکی امن است ؟ یا خیر ؟

3-در صورت استفاده از کوکی ، چه اطلاعاتی برای لاگین موندن شخص ذخیره کنم
(مثلا ID ، ,USerName ، Pass و غیره یا هر سه مورد)

4-چیزی که مشخص است اطلاعات کوکی قابل واکشی است ، اما ایا کوکی توسط کاربر کلاینت (هکر) قابل ویرایش یا تغییر است ؟

5-ایا باید اطلاعات ذخیره شده در کوکی Hash کنم ؟

6- (خیلی مهم ) بر فرض ثبت username و password در کوکی ، ایا زمانی که این دو مقدار را از کوکی میخوانم به بانک وصل بشم و دوباره از وجود یوزر با این پسورد اطمینان حاصل کنم ، یا صرف وجود کوکی به معنی معتبر بودن کاربر است ؟

پیشاپیش ممنون

aminmousavi
شنبه 06 دی 1393, 20:09 عصر
سلام دوست عزیز .
اول از همه یک چیزی رو در نظر بگیر و ببین سایت قرار هست چه کاری انجام دهد و تا چه حد امنیت مورد نیاز داره . مسلما نمیتونین چیزی که مثلا fb قرار داده برای امنیت رو برای سایت خودتون بزارین . اصلا مقرون به صرفه نیست . مطلق گرا نباشین و واقع بینانه پیاده سازی کنین .
1- ...
2- بستگی داره چطوری پیاده سازی کنین . اما در کل به طور 100% امن نیست ب (چون اطلاعات روی سیستم کلاینت ذخیره میشه) اما بلاخره برنامه نویس مجبوره ازش استفاده کنه .
3- این بستگی به سطح برنامه نویسی فرد داره ، بنده از هر 3 پارامتر استفاده میکنم .
4- بله اطلاعات توی فایل ذخیره میشه . و نهایتا میشه ویرایش کرد .
5 - باز هم انتخاب شخصی هست ، اما چیزی که واضحه اینکه باید کد بشه اطلاعات حالا چه با hash یا روش دیگه ای . فقط نکته ای که خیلی باید بهش توجه کنی اینکه هر مرورگر نسیت به ورژن و کمپانی سازنده ای که داره برای هر کوکی یک سایز مشخصی دارند و اصلا استاندارد نیست (مثلا میگن میتونه طول رشته n کاراکتر باشه) و همچنین تعداد کوکی در هر مروگر فرق میکنه ! توی کد کردن باید حواست باشه که از حد مجاز مرورگر ها رد نشی چون دیگه کوکیت نصفه ذخیره میشه .
6- به هــــــــــــــــــــــــ ـــــیچ عنوان . حتما باید سمت سرور چک کنی کوکی معتبر باشه و به جاش یک session براش بسازی . یک بحث دیگه که مهمه اینکه اگر برای ورود از کپچا استفاده میکنی . استفاده از کوکی میتونه یک عیب باشه برات چون میشه بدون کپچا با روبات حمله کرد برای بدست آوردن پسورد کاربرهای سایت

ahmad156
یک شنبه 07 دی 1393, 12:07 عصر
در نگاه کلی استفاده از Cookie برای تامین امنیت بهتر از استفاده از Session هست.استفاده از Session در صورتی که در DataBase ذخیره بشه مفیدتر هست.ولی هر دو در کنار هم بهتره.معمولاً سایت های بزرگی مثل فیسبوک اطلاعات حساسی کاربر رو مثلاً Password رو طرف سرور ذخیره میکنه و فقط اطلاعات غیر حساس کاربر مثلاً نام کاربری رو در Cookie در سمت کاربر ذخیره میکنه.که لازمه این کار داشتن سرورهای قوی هست که برای همه این امکانات فراهم نیست.
امنیت مقوله ای نسبی هست و نه مطلق پس هیچ وقت امنیت 100% نداریم.هم Cookie و هم Session هر کدوم مورد حمله میتونن قرار بگیرن
بحث ویرایش یا تغییر کوکی زمانی معنی میده که هکر بتونه Cookie شما رو داشته باشه که اون هم به این سادگی ها نیست وقتی که Cookie شما HttpOnly (http://msdn.microsoft.com/en-us/library/system.web.httpcookie.httponly%28v=vs.110%29.aspx) شده باشه(گرچه باز هم امکان داره) بعد از اون هم اگر Cookie رو در اختیار بگیره اگر شما از الگوریتم رمزنگاری قوی (و نه Hash که باید قابل بازگشت باشه) استفاده کرده باشین باز ضریب امنیتی شما رو بالاتر میبره.برای این کار راه حل خوبی توی دات نت برای شما فراهم شده و اون هم استفاده از کلاس FormsAuthentication (http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication%28v=vs.110 %29.aspx)هست که مفصل اینجا (http://barnamenevis.org/showthread.php?415958-%D8%AA%D8%B9%DB%8C%DB%8C%D9%86-%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-FormsAuthentication)توضیح داده شده.
شما باید در هر درخواستی که به سمت سرور فرستاده میشه تعیین اعتبار رو انجام بدین.بهترین مکان برای بررسی اعتبار درخواست، Application_AuthenticateRequest (http://msdn.microsoft.com/en-us/library/ee255082%28v=bts.10%29.aspx) هست.