2017-02-21 48 views
3

У меня есть приложение Coldfusion Web. Чтобы защитить мой сайт от атак Cross-Frame Scripting, я планирую добавить заголовок HTTP-ответа «X-Frame-Options» со значением «SAMEORIGIN» в моем «файле .htaccess». Это статья, которую я имею в виду:Как добавить заголовок «X-Frame-Options» в файле .htaccess для защиты от атак типа «ClickJacking»

https://geekflare.com/secure-apache-from-clickjacking-with-x-frame-options/, https://www.garron.me/en/bits/apache-htaccess-add-cache-control-header-file-type.html

Ниже код не работал.

<FilesMatch "\.(cfm)$"> 
<ifModule mod_headers.c> Header append X-FRAME-OPTIONS 'SAMEORIGIN'</ifModule> 
</FilesMatch> 

Я новичок в этом, может кто-нибудь, пожалуйста, помогите, как сделать это правильно.

Заранее спасибо.

ответ

2

Из вашего примера видно, что вы объединили вещи из обеих статей, на которые вы ссылались.

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. Вы также можете продлить этот вариант дальнейшей защиты приложений, а именно:

  1. Откройте файл web.xml находится в <Server-doc-root>/WEB-INF.

  2. Добавить фильтр 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" /> 
0

я исправил , добавив «Header set X-Frame-Options DENY» вне «IfModule mod_headers.c» в файл .htaccess и включив модуль заголовка в файле mod_headers.so в Apache.