Как именно вы настраиваете httpOnlyCookies в ASP.NET?

Вдохновленный этой статьей CodingHorror, "Защита ваших файлов cookie: HttpOnly"

Как установить это свойство? Где-то в веб-конфигурации?


person Teller    schedule 28.08.2008    source источник


Ответы (4)


Если вы используете ASP.NET 2.0 или более позднюю версию, вы можете включить ее в файле Web.config. В разделе ‹system.web› добавьте следующую строку:

<httpCookies httpOnlyCookies="true"/>
person Corey McKinnon    schedule 28.08.2008
comment
Это не работает для меня. Я попробовал ‹httpCookies httpOnlyCookies=true requireSSL=true/›, и ни одна из настроек не работает. - person rolls; 06.01.2017
comment
@rolls У меня такая же проблема. Вы нашли решение или причину? - person Neothor; 01.05.2017

С реквизитами для Рика (второй комментарий ниже в упомянутом сообщении в блоге), вот Статья MSDN о httpOnlyCookies.

Суть в том, что вы просто добавляете следующий раздел в свой раздел system.web в своем web.config:

<httpCookies domain="" httpOnlyCookies="true|false" requireSSL="true|false" />
person Dillie-O    schedule 28.08.2008
comment
Кстати, на самом деле не используйте domain=String — либо установите действительный домен, либо оставьте этот атрибут. - person Jon Galloway; 10.12.2011
comment
@ Дилли-О, что может привести к блокировке этого элемента? когда я устанавливаю его в своем файле web.config, я получаю следующую ошибку: элемент httpcookies был заблокирован в конфигурации более высокого уровня. - person StackTrace; 07.11.2016
comment
@StackTrace. Вы можете проверить файл machine.config на самом сервере, чтобы узнать, есть ли в нем параметр, блокирующий что-либо. - person Dillie-O; 07.11.2016

Если вы хотите сделать это в коде, используйте систему . Свойство Web.HttpCookie.HttpOnly.

Это прямо из документов MSDN:

// Create a new HttpCookie.
HttpCookie myHttpCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
// By default, the HttpOnly property is set to false 
// unless specified otherwise in configuration.
myHttpCookie.Name = "MyHttpCookie";
Response.AppendCookie(myHttpCookie);
// Show the name of the cookie.
Response.Write(myHttpCookie.Name);
// Create an HttpOnly cookie.
HttpCookie myHttpOnlyCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
// Setting the HttpOnly value to true, makes
// this cookie accessible only to ASP.NET.
myHttpOnlyCookie.HttpOnly = true;
myHttpOnlyCookie.Name = "MyHttpOnlyCookie";
Response.AppendCookie(myHttpOnlyCookie);
// Show the name of the HttpOnly cookie.
Response.Write(myHttpOnlyCookie.Name);

Выполнение этого в коде позволяет вам выборочно выбирать, какие файлы cookie являются HttpOnly, а какие нет.

person Portman    schedule 29.08.2008

Интересно, что установка <httpCookies httpOnlyCookies="false"/> не отключает httpOnlyCookies в ASP.NET 2.0. Прочтите эту статью о SessionID и проблемы со входом в ASP .NET 2.0.

Похоже, Microsoft приняла решение не разрешать вам отключать его из web.config. Проверьте это сообщение на forums.asp.net

person Matthew Lock    schedule 21.04.2009