我在Micrisoft IIS 7服务器上运行了一个PHP应用程序。该应用程序在iFrame上显示PDF文件,其中包含用户的敏感数据,我不希望任何知道该文件地址的人直接访问该数据。
基本上,我正在寻找一种方法来保护文件免受直接浏览器访问或下载,但仍然可以在应用程序的iFrame上显示它。
我使用重写规则进行了一些研究,但由于iFrame的“HTTP_REFERER”为空,我找不到一个好的解决方案
对此有何建议? 提前致谢
答案 0 :(得分:1)
如果您没有看到任何代码或应用程序的工作原理,我只能根据我认为您的应用的工作方式提供建议。
您应该考虑更改应用程序,以便PHP在目录中读取,显示文件名(但是您希望它们出现),而不是直接显示文件本身,以及直接指向这些文件的链接。一个download.php
页面。下载页面(在检查用户是否有权下载文件之后)然后将文件加载到内存中并作为响应提供(具有适当的Content-Disposition
和Content-Type
标头)。
由于您的PHP应用程序可以直接在Web目录中读取文件,因此您可以设置重写规则以防止从Web访问这些文件;这样,文件只能由PHP应用程序访问,而PHP应用程序不依赖于重写规则来访问驱动器。
这就像Source Forge这样的地方可以显示一个广告,其中包含您的文件下载将在5秒内开始的倒计时。