允许任何file upload服务器和安全风险

我们有一个项目,允许用户通过php上传,在Linux服务器上运行数据到服务器。

如果用户上传任何可执行文件,上传后将自动重命名为其他名称,并从文件中删除执行权限。

这可能会导致安全问题。

黑客上传病毒仍然可以运行没有执行许可和其实际名称。

上传位置不是/ var / www它在一个单独的存储设备中。

我的假设:你正在运行Apache。

.exebuild议你谈论Windows可执行文件,但是你的标签表明你正在谈论一个Linux服务器。 “黑客”不能在Linux服务器上执行Windows可执行文件,不pipe你给他们什么名字或权限。

风险不在于他们可以运行代码,风险在于他们可以强制Web服务器将file upload到另一个位置,从而获得任意访问权限。 或者,他们可以上传PHP /其他文件,然后让Web服务器执行该文件(不需要执行权限,只需读取权限),并通过该path获取访问权限。 所以你需要做的第一件事就是确保上传的文件位于Apache拒绝读取文件的位置。

针对你的评论,

如果你确保这个文件一旦上传,就位于不允许Apache提供内容的位置,或者有阻止Apache读取文件的权限,那么这可能会缓解一些问题。

但是,请注意,这不是一套全面的保护服务器的措施,这只是第一个想到的问题。 我只是想指出你的问题,表明你没有意识到真正的风险,你可能需要做一些研究,以保护允许上传内容的Web服务。