CfContent仅限于一个文件夹

时间:2014-03-27 00:42:29

标签: coldfusion

应用程序将每日报告保存在共享路径中。我们的应用程序生成将其链接到excels的URL,如

http://application/ExcelTask/Index.cfm?type=Report&fileName=Report_Mar2014.xlsx

使用cfm代码

<cfif FileExists("#filePath#")> 
    <cfheader name="Content-Disposition" value="inline; filename=""#URL.fileName#"""> 
        <cfcontent type="application/vnd.ms-excel" file="#filePath#">
</cfif>

我们发现如果用户知道我们的目录结构,可以使用URL注入下载cfm文件,如

http://application/ExcelTask/Index.cfm?type=../ExcelTask&fileName=Index.cfm

我可以添加条件,仅允许xls和xlsx类型的文件,但看起来像是B计划。

如何限制文件夹访问的任何想法?

1 个答案:

答案 0 :(得分:4)

使用基本的数据清理技能来清理和验证您的URL.typeURL.filename

  • 一些替换所有代码以消除../
  • 尝试isValid(“正则表达式”,一些正则表达式模式......)

您还可以针对会话验证当前登录用户是否具有写入以查看/下载文件以获得额外保护。