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

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

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

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

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


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

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>

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

Хотя для Питера слишком поздно, на самом деле возможно, чтобы JRun с самого начала генерировал HTTPOnly (и безопасные) куки-файлы, как он и просил. Ищите 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, и он работает, как ожидалось. Dodged Appscan я сделал.

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

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

Другие вопросы по тегам