2012-08-23 76 views
0

我正在使用Thumbnail插件。它将拇指存储在webroot上的文件夹中。 但是当它试图保存拇指时,返回“不可写入”错误。它的目录权限是755。 如果我将权限更改为777,则错误消失。但我在某处读取777权限可能会导致安全问题。写入文件夹和安全风险

我该怎么办?

回答

1

你可以改变所有者(例如在Linux chown www-data:www-data your/direcotry/path

chown [OPTIONS] [Owner][:[Group]] FilenameOrFoldername 

的web服务器用户(谁执行PHP脚本的用户)拥有的目录,然后他有写访问,你可以离开权利755.

7 5 5 = RWX RX RX

- [R EAD瓦特仪式ËX ecute

第一位数=所有者
第二位数=组
第三位数=所有其他用户

意味着只有所有者具有写访问(他能在这种情况下,WWW的数据用户文件添加到目录),该组(www-data)具有读取和执行权限,其余部分也具有读取和执行权限,所以不应该有755的安全风险。

Here您有一个工具,您可以在其中计算右侧 - > chmod号码转换

+1

这似乎是正确的解决方案,只给需要它的用户提供正确的权限。 – bdares

0

权利被写作所有者/组/其他人,我认为你可以使用775权利为你的逻辑。

0

您可以将其存储在Web服务器(如apache或nginx)无法访问但您的Web应用服务器(php,java servlet,无论)能够访问的位置,并为其创建逻辑以从该文件夹中抓取它并将其作为图像提供。这样,您可以确保用户上传的任何文件都不会被执行。

这会花费更多的服务器资源,所以这是你应该考虑的。

如果文件是由您的应用程序创建的,并且用户无法直接修改它们,那么授予它写入权限没有问题。

+0

糟糕的解决方案。核心处理太多。但如果不重要,那么它是最好的。 – Anton

+0

用户的文件是最好的,但在我的应用程序中,用户永远不会上传文件。应用程序创建一个图像和拇指,将其存储在某个地方,并显示给用户 – mrdaliri