保护通过PHP上传到服务器的文件

保护通过PHP上传到服务器的文件,php,file-upload,Php,File Upload,我正在构建一个应用程序,它可以方便地上传文件。应用程序将有一个案例,其中文件被分配给案例,用户被分配给案例。整个应用程序仅可供登录用户访问 现在我的想法是为每个案例创建一个文件夹结构。文件显然只能通过脚本提供,因此没有公开下载。这些文件可能包含各种内容,主要是因为它是一个基于取证的应用程序 我唯一的问题是,我想知道是否有可能阻止本地访问这些上传的文件。例如,阻止某人访问其所在的服务器、修改文件或仅访问文件。我可以加密文件并在数据库中存储密钥吗?我知道如果数据库被控制了加密就没用了 是否有更好的方

我正在构建一个应用程序,它可以方便地上传文件。应用程序将有一个案例,其中文件被分配给案例,用户被分配给案例。整个应用程序仅可供登录用户访问

现在我的想法是为每个案例创建一个文件夹结构。文件显然只能通过脚本提供,因此没有公开下载。这些文件可能包含各种内容,主要是因为它是一个基于取证的应用程序

我唯一的问题是,我想知道是否有可能阻止本地访问这些上传的文件。例如,阻止某人访问其所在的服务器、修改文件或仅访问文件。我可以加密文件并在数据库中存储密钥吗?我知道如果数据库被控制了加密就没用了

是否有更好的方法实现此功能?有人对如何实现这一目标有任何反馈吗


我有一个使用Zend Framework 2构建的基础应用程序,但我正在撰写一篇研究论文,我在这里的决定将极大地影响我的研究。谢谢

可以像您所说的那样对文件进行加密,但最好首先阻止对服务器的访问。一旦他们入侵了你的网络服务器,你凭什么认为他们无法入侵你的数据库

此外,如果他们获得了对Web服务器的访问权,他们就可以访问为加密文件提供服务的脚本。由于该脚本已经具有解密文件的功能,因此获得访问权限将是小菜一碟


长话短说:保护web服务器本身。

将加密文件和密钥存储在单独的物理服务器上的数据库中可以提高安全性,因为现在攻击者需要破坏这两台服务器。您的代码库可能在其中的某个地方有数据库凭据。这是非常正确的。没有想到这一点好吧,所以基本上,忘记加密,只提供对web服务器的最小帐户访问权限?确实如此。每个有权访问您的脚本的人都可以读取解密脚本所需的密码和代码,因此这将是无用的。这个问题似乎指出了一些有助于保护Ubuntu服务器的有趣配置: