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