我想要一个文件夹,叫它docs,其中包含登录用户可以下载的文档。这些都有非常敏感的信息。如何最好地保护文件夹。我来自PHP背景,因此想知道是否忽略了任何内容。
我将使用.htaccess保护该文件夹,并且当用户单击“下载”时,他们将永远不会显示该文件夹。下载是通过php强制删除它们的文件夹名称。
当然,为了保护用户区域,我正在所有输入字段上进行卫生和验证,并注意SQLInjections。使用SSL连接。关闭所有的PHP警告。安全区域使用SESSION变量来控制访问并重新验证用户以执行特殊任务,例如更改密码。加上10分钟的超时功能,此后用户必须重新输入详细信息。
我正在尝试尽可能详尽,以便任何建议,无论多么小,都将受到欢迎。
将文件放在webroot之外。然后使用PHP通过脚本传递文件。这样,任何人都无法直接链接到文件并绕过控件。(自然地,请确保仅在验证用户具有检索该文件的权限之后执行此操作的脚本)。
示例PHP:
<?php if (!isset($_SESSION['authenticated'])) { exit; } $file = '/path/to/file/outside/www/secret.pdf'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; ?>