Классический ASP: как проверить, был ли файл cookie ASPSESSIONID * помечен как безопасный? - PullRequest
3 голосов
/ 20 января 2010

Я пытаюсь пометить файл cookie идентификатора сеанса ASP как HttpOnly, но не могу найти способ определить, работает ли он.Среда, в которой я пытаюсь это сделать, выглядит следующим образом: ОС: Windows Server 2003 IIS: 6 ASP Версия: ASP 3 (Classic ASP)

Чтобы пометить файл cookie только как http, я следовал MSKB

В соответствии с предложением нашего архитектора, чтобы проверить, работает ли это, javascript document.cookie не должен быть в состоянии прочитать файл cookie ASPSESSIONID *.Моя проблема заключается в том, что javascript: alert (document.cookie) по-прежнему повторяет файл cookie ASPSESSIONID *, хотя, похоже, он зашифрован (?)

Я также пытался сделать это с помощью Response.AddHeader «Set-Cookie», ноне может определить, какое значение дать этому заголовку, чтобы пометить все файлы cookie или, по крайней мере, файл cookie идентификатора ASP как HttpOnly.Помогите !!!

Ответы [ 3 ]

4 голосов
/ 10 января 2013

Только что столкнулся с этой проблемой из-за "нового" элемента соответствия PCI.Это немного неуклюже, но, похоже, это работает:

<%
Dim AspSessionCookie
AspSessionCookie = Request.ServerVariables("HTTP_COOKIE")

If len(AspSessionCookie) > 0 Then
    AspSessionCookie = "ASPSESSIONID" & Split(AspSessionCookie,"ASPSESSIONID")(1)
    If  InStr(1,AspSessionCookie,";") then
        AspSessionCookie = Split(AspSessionCookie,";")(0)        
    End If

    Response.AddHeader "Set-Cookie", AspSessionCookie & ";HttpOnly"
Else 
    Response.redirect(Request.ServerVariables("URL"))
End If
%>
3 голосов
/ 08 августа 2011

Вы, кажется, запутались между SECURE и HTTPONLY Это разные. Ссылка на статью MS KB для SECURE.

Установка cookie SECURE остановит IIS / браузер, отправляющий идентификатор сеанса ASP через HTTP.

Установка куки HTTPONLY остановит скрипт (javascript) от доступа к значению в большинстве браузеров.

Существует очень ХОРОШАЯ причина устанавливать HTTPONLY на cookie-файл sessionID. Это помогает предотвратить кражу куки пользователя sessionID, что может привести к перехвату сессии. Вот почему крупные браузеры внедрили его.

2 голосов
/ 20 января 2010

Я не думаю, что ваш архитектор прав в отношении доступа к cookie в javascript.

Нет никаких причин препятствовать доступу javascript на вашей странице к cookie-файлам, кроме как доступ javascript к остальным вашим данным в HTML.

Цель добавления квалификатора безопасности кcookie используется для предотвращения его отправки в незащищенном запросе.

Обычно файлы cookie, установленные при подключении клиента с использованием https, все равно будут отправляться при отправке запросов на тот же сервер с использованием обычного http.Маркировка cookie с помощью квалификатора безопасности, когда его Set указывает клиенту, что его следует отправлять только в последующих запросах, если эти запросы используют https.

Следовательно, чтобы проверить свои настройки, получите себе копию fiddler , при этом запущенный сервер попадает на сервер через https, а затем в том же сеансе браузера попадает в то же место с помощью только http.Fiddler должен показать второй запрос, отправляемый на сервер, и там не должно быть файла cookie ASPSESSION.

...