Из вашего примера видно, что вы объединили вещи из обеих статей, на которые вы ссылались.
Geekflare.com article дает этот пример для Apache:
Header always append X-Frame-Options SAMEORIGIN
Garron.me article дает этот пример для Apache:
<filesMatch ".(html|htm)$">
Header set Cache-Control "max-age=14400, must-revalidate"
</filesMatch>
Что в моем сознании бы перевести это для X-Frame-Options жатки на Страницы ColdFusion:
<filesMatch ".(cfml|cfm)$">
Header always append X-FRAME-OPTIONS SAMEORIGIN
</filesMatch>
Уведомление tha t нет ключевого слэша \
в регулярном выражении, как в вашем коде, и котировки не нужны около SAMEORIGIN
, и вы опустили ключевое слово always
. У вас также есть дополнительный код <ifModule mod_headers.c>
, который я не думаю, что вам нужно. Я бы объединил расширения ColdFusion и HTML с условием вроде <filesMatch ".(cfml|cfm|html|htm)$">
, чтобы отправить заголовок для этих запросов на страницу.
Я просто получаю это от статей, на которые вы ссылались, но вы отметили свой вопрос ColdFusion, поэтому для этого есть несколько вариантов. Фактически, более поздние версии ColdFusion (я считаю, что он был введен с версией 10) поставляются с некоторой защитой из коробки. И вы можете настроить его в соответствии с вашими потребностями. Смотрите раздел "ClickJacking" этой статьи - Security improvements in ColdFusion 10
Из этого документа:
ColdFusion администратор защиты от ClickJacking с помощью X-Frame-Options. Вы также можете продлить этот вариант дальнейшей защиты приложений, а именно:
Откройте файл web.xml находится в <Server-doc-root>/WEB-INF
.
Добавить фильтр URL Сопоставление для вашего приложения с одним из двух уже указанных фильтров: CFClickJackFilterSameOrigin
или CFClickJackFilterDeny
.
Теперь давайте предположим, что у вас есть приложение testClick
, который вы хотите защитить от ClickJacking отрицая рамки для применения. Для этого добавьте следующее в файл web.xml.
<filter-mapping>
<filter-name>CFClickJackFilterDeny</filter-name>
<url-pattern>/testClick/*</url-pattern>
</filter-mapping>
Глядя на web.xml
файл одного из моих серверов включает в себя следующие из коробки (обратите внимание, как они добавили защиту для администратора ColdFusion) :
<!-- CF ClickJacking deny protection Filter -->
<filter>
<filter-name>CFClickJackFilterDeny</filter-name>
<filter-class>coldfusion.bootstrap.BootstrapFilter</filter-class>
<init-param>
<param-name>filter.class</param-name>
<param-value>coldfusion.filter.ClickjackingProtectionFilter</param-value>
</init-param>
<init-param>
<param-name>mode</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
<!-- CF ClickJacking same origiin protection Filter -->
<filter>
<filter-name>CFClickJackFilterSameOrigin</filter-name>
<filter-class>coldfusion.bootstrap.BootstrapFilter</filter-class>
<init-param>
<param-name>filter.class</param-name>
<param-value>coldfusion.filter.ClickjackingProtectionFilter</param-value>
</init-param>
<init-param>
<param-name>mode</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
<!-- CF ClickJacking Filter mapppings starts. For ColdFusion Administrator we are allowing
sameorigiin frames. Use Deny or some other mode of this filter as appropriate for the
application and add required url pattern
-->
<filter-mapping>
<filter-name>CFClickJackFilterSameOrigin</filter-name>
<url-pattern>/CFIDE/administrator/*</url-pattern>
</filter-mapping>
<!-- End CF ClickJacking Filter mappings -->
Итак, чтобы защитить весь сайт ColdFusion, вы можете добавить filter-mapping
для корня вашего сайта /*
.
<filter-mapping>
<filter-name>CFClickJackFilterSameOrigin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Вы можете даже использовать <cfheader>
тег, чтобы включить заголовок ответа (но вы должны сделать это на всех страницах или в Application.cfc и т.д.)
<cfheader name="X-FRAME-OPTIONS" value="SAMEORIGIN" />