保护服务器中的文件存储

mah*_*n3d 2 php file-upload file

我有一个工作网站,所以有很多cv上传到服务器并存储在公共的文件夹位置.我只是想知道我可以在Apache,php级别做什么安全措施来阻止未经授权的人访问其他人的cv's

我有

  1. 禁用目录浏览
  2. 在html中创建了虚假链接,然后将.htaccess映射到另一个位置

..等等

只是想知道有没有办法我们可以完全隐藏文件名出现在浏览器网址中(可能有像application/pdf ..etc这样的标题,并且可以随时读取文件的内容)这是可能还是有更好的方法将它们存储在MySQL DB中的方式?

ale*_*lex 5

将文件存储在文档根目录之外(因此您的服务器默认情况下不会将URL映射到它)并使用确认经过身份验证的用户的脚本,然后将简历的内容仅流式传输给该用户.

例如...

<?php

session_start();

include 'app.php';

$userAuthenticated = (new Auth)->check($_SESSION['username']);

$file = isset($_GET['file']) ? 
        $_GET['file'] :
        FALSE;

$file = FILES_PATH . DIRECTORY_SEPARATOR . preg_replace('/[^\w.]/', '', $file);

if ($userAuthenticated AND file_exists($file)) {
    readfile($file);
} else {
    header('HTTP/1.1 403 Forbidden');
    echo 'You\'re not authenticated!';
}
Run Code Online (Sandbox Code Playgroud)

这段代码应该给你一般的想法.