1

我正在尝试替换与我的 php 文件夹不同的文件夹中的文件内容,但出现错误:“无法打开流,权限被拒绝”

我正在使用 put_file_contents 函数来更改文件内容。我在网上搜索了这个问题的解决方案,发现文件目录只允许所有者/用户写入。我检查了 filezilla (ftp) 中的目录属性,发现该目录不可被组或公共写入。

在filezilla中,我尝试允许公共写入目录,并且php文件能够写入文件夹的文件。

因此,我想我可以很容易地只设置文件的权限,而不是目录,并通过将权限设置为公共可写来轻松替换它的内容。虽然我不明白所有者/组/公共选项是什么意思?因为这应该是托管在付费域名主机上的网站的网络服务器,我不确定公共写入选项是否安全,或者为什么只有一个网站的网络服务器会有用户组?

既然只有 php 文件可以更改网络服务器上的内容,为什么要为网络服务器提供公共选项?如果是用于上传,那也意味着上传页面驻留在服务器上!我无法访问 ftp 或 cpanel 上的终端,因此我无法执行 chmod 等...

请有人提供有关具有公共写权限的文件的安全风险的更多详细信息吗?

4

1 回答 1

0

服务器仍然是一台计算机,就像它们中的任何一个一样。这意味着您可以创建多个用户,并且可能会发生很多事情。

您的服务器不一定只保留一个 Web 服务器。显然它也是一个 FTP 服务器,您可能也可以使用 ssh 访问它。将来您可能希望将其用于其他目的。

在任何情况下,即使您将其仅用作 Web 服务器,将文件夹的权限设置为对每个用户都可写也是危险的,因为您的代码将不可避免地存在安全风险。它可以起到保护作用:即使你将来写了一些危险的东西,它也包含了损害。

这就是为什么在某些系统上,负责服务 http 请求的软件(通常是 Apache)作为特定用户 httpd 运行的原因。

用户组就是它所说的:定义的用户组。你可以很容易地在网上阅读它。

于 2016-08-28T09:37:29.793 回答