2011-02-02 54 views
0

在Web应用程序中,我有一个上传文件夹,其中存储了所有用户的文件,我需要消除执行它们的可能性。文件上传安全 - chmod执行限制不起作用

正如维基百科看到:

搭配chmod -R A-X + X目录
删除在目录树中的所有文件的执行权限,同时允许目录浏览。

但之后成功使用这一上传文件夹的所有,我已经放在这里是为了测试目的(我怀疑所有其他类型的可执行文件)的封闭PHP,Perl和Python脚本,当我打印不得到执行他们在浏览器的地址。

为什么会发生这种情况,我该如何解决这个问题?

+0

澄清。你chmod了一个目录,所有的文件仍然是可执行的,或者是你在chmodd后上传的文件? – IvanGoneKrazy 2011-02-02 22:21:26

回答

2

perl,php和python解释器会高兴地执行传递给它们的输入文件,无论其输入文件的执行权限位是否打开。 (在 另一方面,如果该文件有一个shebang行指定使用哪一种解释, 执行权限会受到尊重。但是,这可能是不适合 您的情况的情况下)。

你必须通过配置您的Web服务器(限制 它认为可执行的目录)来解决此问题,而不是在文件系统级别。

如果您使用的是Apache,您可能需要查看全局配置文件或本地.htaccess文件as described here中的ScriptAlias指令 。

+0

感谢您的解释。 – Anton 2011-02-02 22:30:44