PDA

View Full Version : سوال: ایجاد صفت http only برای کوکی ها و session ها



khadem1386
جمعه 11 شهریور 1390, 14:22 عصر
با سلام:

ظاهرا هکرها با استفاده از ("ASPSESSIONID") می توانند عملیات xss انجام دهند.
و برای جلوگیری از آن باید کوکهای خود را بصورت httponly در آوریم

1-اگر بخواهیم کوکی های خود را (بمنظور امنیت بیشتر سایت ) بصورت httponly در آوریم چه کار باید بکینم
اگر می شه چند خط کد سمپل بگذارید.

2-آیا این تنظیمات برروی همه کوکی ها اثر می گذارد یا فقط روی یک کوکی خاص
3- آیا session ها نیز جزو کوکی ها بحساب می آیند و باید آنها را نیز httponly کرد.
4 - آیا کوکی ها نیز یک نوع session هستند.
5- آیا اگر این تنظیم را انجام دهم روی سایت چه محدودیتهایی بوجود می آید . یعنی اگر کوکی خود را روی hhtpony ست کنم در عوض چه امکاناتی را از دست می دهم و چه امکاناتی را بدست می آورم.
6- برای امنیت بهتر است چه کوکهایی را بصورت httponly در آورم

با تشکر فراوان

prankster
جمعه 11 شهریور 1390, 14:59 عصر
1.
HttpCookie cookie = new HttpCookie("name", "value") { HttpOnly = true };

2. فقط روی cookie تعریف شده به صورت بالا اثر می گذارد. می توان در Web.config در قسمت <system.web> کلیه cookie ها را به صورت httpOnly تعریف کرد:
<httpCookies httpOnlyCookies="true"/>

3. کلید session به صورت cookie روی مرورگر کلاینت ذخیره می شود تا در درخواست های بعدی session مروبه به کاربر درخواست کننده map شود. در صورتی که customProvider مربوط به session را تغییر نداده باشید (حالت پیش فرض) cookie ایجاد شده توسط Net. به صورت httpOnly تعریف می شود. برای امنیت بیشتر می توان sessionIDManager مربوط به session را به صورت custom در پروژه تعریف کرد، در فایل Web.Config:
<sessionState sessionIDManagerType="customSessionIDManagerType" />
اطلاعات بیشتر:
http://msdn.microsoft.com/en-us/magazine/cc163730.aspx

4. خیر! cookie اطلاعاتی است که به صورت string در مرورگر کاربر ذخیره می شود.

5. خاصیت httpOnly تضمین می کند که cookie ایجاد شده در مرورگر قابل خواندن و نوشتن نباشد. cookie ها به صورت پیش فرض قابل خواندن و نوشتن توسط JavaScript هستند:
document.cookie
خاصیت httpOnly مانع از تغییر مقدار cookie توسط JavaScript می شود...حملات از نوع Session Fixation از این روش برای جعل مقدار کلید Session استفاده می کنند!

6. در صورتی که در سمت کلاینت نیازی به خواندن و نوشتن cookie نیست، همواره آنرا به صورت httpOnly تعریف کنید