Принудительное использование файлов cookie HttpOnly с помощью JRun / ColdFusion

Нам необходимо убедиться, что все файлы cookie на сайте CF7 настроены как HttpOnly.

Мы используем jsessionid для управления нашими сеансами, а JRun не создает его как HttpOnly.

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

Какие-либо предложения?


Связанный вопрос: Установка флага безопасности для файлов cookie HTTPS.


person Peter Boughton    schedule 26.06.2009    source источник


Ответы (3)


От: http://www.petefreitag.com/item/764.cfm

Запуск CF 8 или ниже и использование Application.cfc

<cfcomponent>
  <cfset this.sessionmanagement = true>
  <cfset this.setclientcookies = false>
  <cffunction name="onSessionStart">
      <cfheader name="Set-Cookie" value="CFID=#session.CFID#;path=/;HTTPOnly">
      <cfheader name="Set-Cookie" value="CFTOKEN=#session.CFTOKEN#;path=/;HTTPOnly">
  </cffunction>
<cfcomponent>

Убедитесь, что вы указали setclientcookies = false.

При использовании Application.cfm

Если вы все еще используете файл Application.cfm, вы можете использовать следующее:

<cfapplication setclientcookies="false" sessionmanagement="true" name="test">
<cfif NOT IsDefined("cookie.cfid") OR NOT IsDefined("cookie.cftoken")>
   <cfheader name="Set-Cookie" value="CFID=#session.CFID#;path=/;HTTPOnly">
   <cfheader name="Set-Cookie" value="CFTOKEN=#session.CFTOKEN#;path=/;HTTPOnly">
</cfif>
person Salazar Mubarak    schedule 08.03.2011

Во-первых, тепло приветствуем всех беженцев PCI DSS! Приглашаются также беглецы Appscan, Webinspect, Hailstorm и NTOSpider. Садись вот сюда, у меня для тебя торт:

Хотя для Питера уже слишком поздно, на самом деле возможно, чтобы JRun с самого начала генерировал HTTPOnly (и безопасные) файлы cookie, как он просил. Найдите файл jrun-web.xml. Вероятно, он будет в каталоге вроде

C:\JRun4\servers\servername\cfusion-ear\cfusion-war\WEB-INF\.

Вам необходимо добавить следующее в раздел cookie-config:

<cookie-config>
    <cookie-path>/;HttpOnly</cookie-path>
</cookie-config>

Если ваш сайт использует протокол HTTPS, вам также следует включить опцию безопасных файлов cookie. Но будьте осторожны, это касается всего сервера, а не приложения. Поэтому он может не подходить для вашей общей среды:

<cookie-config>
    <cookie-secure>true</cookie-secure>
    <cookie-path>/;HttpOnly</cookie-path>
</cookie-config>

Если вы не застряли в MX7 или CF8, существует официальная настройка для это в CF9.01 Dcoldfusion.sessioncookie.httponly

Я тестировал это на ColdFusion MX7, и он работает, как ожидалось. Я увернулся от Appscan.

person Amit Naidu    schedule 03.08.2011

Цель состоит в том, чтобы первый запрос был безопасным (и прошел сканирование), поэтому, если этот пост охватывает это, он решит проблему.

Поправьте меня, если я ошибаюсь, но похоже, что вам нужно перенаправить на HTTPS, если запрос приходит через HTTP. Можно ли не уловить это с помощью правила перезаписи URL до того, как запрос будет отправлен в ColdFusion вообще?

person Adam Tuttle    schedule 29.06.2009
comment
К сожалению, мы используем IIS 5, поэтому не можем выполнять перезапись URL-адресов без дорогостоящих, глючных сторонних плагинов. Разве что можно переписать на уровне JRun? - person Peter Boughton; 30.06.2009
comment
Я не знаю ни о каких переписчиках URL-адресов на уровне JRun. Запуск на IIS 5 кажется странным требованием ... но я могу понять, что иногда вам приходится работать с тем, что у вас есть. Удачи! :) - person Adam Tuttle; 30.06.2009