2017-02-21 40 views
3

我有一个Coldfusion Web应用程序。为了保护我的网站免遭跨框架脚本攻击,我打算在我的'.htaccess文件'中添加一个HTTP响应头“X-Frame-Options”,其值为“SAMEORIGIN”。这就是我所说的文章:如何在.htaccess文件中添加“X-Frame-Options”标头以防止'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-框架,选项首部上ColdFusion页面:

<filesMatch ".(cfml|cfm)$"> 
Header always append X-FRAME-OPTIONS SAMEORIGIN 
</filesMatch> 

注意: t在正则表达式中没有前导斜杠\,因为在您的代码中,引号不需要在SAMEORIGIN附近,并且您省略了always关键字。你还有一个额外的<ifModule mod_headers.c>检查,我认为你不需要。为了发送这些页面请求的标题,我会将ColdFusion和HTML扩展组合到这种条件下,如<filesMatch ".(cfml|cfm|html|htm)$">

我只是从您引用的文章中获得,但您已使用ColdFusion标记了您的问题,因此有几个选项可供选择。实际上,更高版本的ColdFusion(我相信它是在第10版中引入的)带有一些开箱即用的保护。你可以定制它以适应你的需求。看到这篇文章的“点击劫持”部分 - Security improvements in ColdFusion 10

从这个文件:使用X框,选择针对点击劫持

ColdFusion管理保护。您还可以扩展此选项,进一步保护你的应用程序,具体如下:

  1. 打开位于<Server-doc-root>/WEB-INF web.xml文件。

  2. 添加URL过滤器使用已指定的两个过滤器之一映射您的应用程序:CFClickJackFilterSameOriginCFClickJackFilterDeny

现在让我们假设你有一个应用程序testClick,要通过拒绝为应用程序的框架,以防止点击劫持。为此,请在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

我有固定的这个在.htaccess文件的“IfModule mod_headers.c”之外添加“Header set X-Frame-Options DENY”,并在Apache中的mod_headers.so文件中启用Header模块。