我的任务是研究将 .cfm 文件存储在 Web 根目录之外的可能性,以作为进一步的安全措施。(我不是在谈论 CFC,而是在 URL 字符串中出现的文件。)
我想我可以在 Application.cfc 中使用 OnRequest() 的属性来做到这一点,但没有运气。
我试过这个:
<cffunction name="OnRequest" access="public" returntype="void" output="true">
<cfargument name="TargetPage" type="string" required="true"/>
<cfinclude template="C:/test#arguments.TargetPage#"/>
<cfreturn/>
</cffunction>
然后我放了一个test.cfm
里面C:\test
并尝试了http://localhost/test.cfm
。这给了我一个“找不到文件”错误。
因此,我创建了一个C:\test
名为“test”的 ColdFusion 映射,并因此更改了我的 CFINCLUDE:
<cfinclude template="/test#arguments.TargetPage#"/>
不幸的是,我遇到了同样的错误。
那么,我所追求的可能吗?(Windows Server 2008 和 IIS 以防万一。ColdFusion 9。)
我知道我可以在我的 index.cfm 中放置一个 CFINCLUDE 并传递类似的 URL http://www.example.com/?file=test.cfm
,但我不想这样做。
test.cfm
好吧,这里有一些东西:如果我在我的网络根目录中放一个空的,那么它就可以了。显然,我真的不想为我的每个文件都放置空存根(对于这个项目,最终将有数百个)。