安全文件下载

我想要一个文件夹,叫它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;

?>

以上是 安全文件下载 的全部内容, 来源链接: utcz.com/qa/415642.html

回到顶部