Принудительное использование 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 вообще?