PHP-使用会话变量保护同一目录中的.docx文件

PHP-使用会话变量保护同一目录中的.docx文件,php,session-variables,Php,Session Variables,我创建了一个PHP应用程序,可以自动创建租赁文档,如租赁、扩展、通知等。该应用程序将租赁文档创建并保存在指定目录中,作为word文档 我的应用程序要求用户登录并使用会话变量验证登录。我的问题是如何保护包含已完成租赁文档的/docs/目录?如果有人知道这个目录存在,他们可以简单地将它输入浏览器。我将一个空白index.html文件添加到此目录。这样可以防止显示文件名。我只是想知道保护此目录的最佳方法是什么,因为它将包含包含个人信息的文档?Ryan感谢您的建议。正如您所建议的,我将文件保存在文档根目

我创建了一个PHP应用程序,可以自动创建租赁文档,如租赁、扩展、通知等。该应用程序将租赁文档创建并保存在指定目录中,作为word文档


我的应用程序要求用户登录并使用会话变量验证登录。我的问题是如何保护包含已完成租赁文档的/docs/目录?如果有人知道这个目录存在,他们可以简单地将它输入浏览器。我将一个空白index.html文件添加到此目录。这样可以防止显示文件名。我只是想知道保护此目录的最佳方法是什么,因为它将包含包含个人信息的文档?

Ryan感谢您的建议。正如您所建议的,我将文件保存在文档根目录之外,并使用此代码访问它们

<?php
header('Content-Description: File Transfer');
header('Content-Type: application/msword');
header('Content-Disposition: attachment; filename="'.$_GET['doc'].'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($doc));
readfile("../test/" . $_GET['doc']);
?>


为了访问这些文件,我将文件名包含在链接到上述代码的url中。例如

将文件保存在
document\u root
之外的目录中。也许有趣?别忘了清理GET参数…这是在乞求滥用。至少检查一下……或什么的。另外,文件存在性检查在哪里:)。总是期望有人破坏你的代码,所以你应该先破坏它。