我有一个Coldfusion Web应用程序。为了保护我的网站免受跨框架脚本攻击,我计划添加一个HTTP响应标头" X-Frame-Options"价值为#34; SAMEORIGIN"在我的' .htaccess文件中#39;这是我提到的文章:
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>
我是新手,有人可以帮助您正确地做到这一点。
提前致谢。
答案 0 :(得分: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>
我认为在ColdFusion页面上的X-Frame-Options标题会转换为此内容:
<filesMatch ".(cfml|cfm)$">
Header always append X-FRAME-OPTIONS SAMEORIGIN
</filesMatch>
请注意,正则代码中没有前导斜杠\
和代码中的SAMEORIGIN
,always
周围没有引号,您省略了<ifModule mod_headers.c>
关键字。您还需要额外的<filesMatch ".(cfml|cfm|html|htm)$">
支票,我认为您不需要。我会将ColdFusion和HTML扩展组合到像<Server-doc-root>/WEB-INF
这样的条件,以便为这些页面请求发送标头。
我刚刚从您引用的文章中获得了这些内容,但您已使用ColdFusion标记了您的问题,因此有多种选择。事实上,更高版本的ColdFusion(我相信它是在版本10中引入的)带来了一些开箱即用的保护。您可以自定义它以满足您的需求。请参阅&#34; ClickJacking&#34;本文的一部分 - Security improvements in ColdFusion 10
从该文件:
ColdFusion管理员使用X-Frame-Options防止点击劫持。您还可以进一步扩展此选项以保护您的应用程序,如下所示:
- 的Web.xml文件
打开位于
CFClickJackFilterSameOrigin
。- 醇>
使用已指定的两个过滤器之一为您的应用添加网址过滤器映射:
CFClickJackFilterDeny
或testClick
。现在让我们假设您有一个应用程序
<filter-mapping>
,您希望通过拒绝应用程序框来防止点击劫持。为此,请在web.xml文件中添加以下内容。
<filter-name>CFClickJackFilterDeny</filter-name>
<url-pattern>/testClick/*</url-pattern>
</filter-mapping>
web.xml
查看我的某个服务器中的<!-- 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
因此,为了保护您的整个ColdFusion网站,您可以为网站的根/*
添加<filter-mapping>
<filter-name>CFClickJackFilterSameOrigin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
。
<cfheader>
您甚至可以使用<cfheader name="X-FRAME-OPTIONS" value="SAMEORIGIN" />
标记来包含响应标头(但您必须在所有页面上或Application.cfc中执行此操作等)。
../.android/
../.bash_history
../.bash_profile
../.bashrc
../.gitconfig
../.lmmsrc.xml
../.viminfo
../3D Objects/
../AppData/
../Contacts/
Books/
Brackets.lnk
Coding Projects/
Dannys UNI/
Game Dev/
HP/
Learning Dutch.odt
Photoshop - Shortcut.lnk
Photoshop/
Repository/
Repository2/
SCAN0000.bmp
Spotify.lnk
Steam.lnk
Studies/
Stuff I Dont Want To Sort/
Sublime Text 3.lnk
desktop.ini
game_new.js
game_old.js
meme_salt_bae-20170206-007-rita.jpg
~$Oober.odt
~$e situation in yemen.docx
~$linese.docx
~WRL4078.tmp
../Documents/
../Downloads/
../Favorites/
../Links/
../Music/
../NTUSER.DAT
../NTUSER.DAT{48f83f2c-82db-11e6-b460-dfd6d497f2b5}.TxR.0.regtrans-ms
../NTUSER.DAT{48f83f2c-82db-11e6-b460-dfd6d497f2b5}.TxR.1.regtrans-ms
../NTUSER.DAT{48f83f2c-82db-11e6-b460-dfd6d497f2b5}.TxR.2.regtrans-ms
../NTUSER.DAT{48f83f2c-82db-11e6-b460-dfd6d497f2b5}.TxR.blf
../NTUSER.DAT{48f83f2d-82db-11e6-b460-dfd6d497f2b5}.TM.blf
../NTUSER.DAT{48f83f2d-82db-11e6-b460-dfd6d497f2b5}.TMContainer000000000 00000000001.regtrans-ms
../NTUSER.DAT{48f83f2d-82db-11e6-b460-dfd6d497f2b5}.TMContainer000000000 00000000002.regtrans-ms
../OneDrive/
../Pictures/
../Saved Games/
../Searches/
../Videos/
../ntuser.dat.LOG1
../ntuser.dat.LOG2
../ntuser.ini
答案 1 :(得分:0)
我已经通过添加&#34; Header设置X-Frame-Options DENY&#34;来解决了这个问题。外部&#34; IfModule mod_headers.c&#34;在.htaccess文件中,并在Apache中的mod_headers.so文件中启用Header模块。