Php 更改服务器上文件权限的安全性

Php 更改服务器上文件权限的安全性,php,security,chmod,Php,Security,Chmod,我有一个PHP文件,它编辑一个XML文件,两者都在同一个web服务器上。所以我需要chmod666这个XML文件。但是,我看到一些警告,由于授予了写入权限,这是一种安全风险 我只关心远程用户是否可以编辑我的XML文件,我是否正确地认为如果不是本地用户,这是不可能的?谁首先创建了XML文件?如果直接通过PHP创建,则无需设置此类权限 如果您使用的是共享主机,其他人可能可以修改XML,具体取决于服务器的配置 安全风险取决于您对数据的处理方式,您是否评估数据,是否根据XML中的内容调用函数?你只是输出

我有一个PHP文件,它编辑一个XML文件,两者都在同一个web服务器上。所以我需要chmod666这个XML文件。但是,我看到一些警告,由于授予了写入权限,这是一种安全风险


我只关心远程用户是否可以编辑我的XML文件,我是否正确地认为如果不是本地用户,这是不可能的?

谁首先创建了XML文件?如果直接通过PHP创建,则无需设置此类权限

如果您使用的是共享主机,其他人可能可以修改XML,具体取决于服务器的配置

安全风险取决于您对数据的处理方式,您是否评估数据,是否根据XML中的内容调用函数?你只是输出一些东西而没有逃逸吗?您是否在XML中存储敏感信息

我不知道你说的“远程用户”是什么意思。已登录的任何其他用户(读取系统用户)都可以修改该文件。因此,任何通过SSH或其他方式连接的人都可以更改它。
但是,如果它是一个虚拟服务器,那就不同了。

谁首先创建了XML文件?如果直接通过PHP创建,则无需设置此类权限

如果您使用的是共享主机,其他人可能可以修改XML,具体取决于服务器的配置

安全风险取决于您对数据的处理方式,您是否评估数据,是否根据XML中的内容调用函数?你只是输出一些东西而没有逃逸吗?您是否在XML中存储敏感信息

我不知道你说的“远程用户”是什么意思。已登录的任何其他用户(读取系统用户)都可以修改该文件。因此,任何通过SSH或其他方式连接的人都可以更改它。
但是,如果它是一个虚拟服务器,那就不同了。

您可以为他们设置一个组,为文件设置组权限,并为该文件授予组权限,该组的所有用户都可以编辑该文件。这样,只有该组的成员才能编辑,而不是所有的公众人士。

您可以为他们设置一个组,设置文件的组权限,并授予该文件组权限,该组的所有用户都可以编辑该文件。这样,只有小组成员可以编辑,而不是所有公众。

XML是手动上传的,我有一个纬度和经度,如果为空,我将进行地理编码并写入XML文件(使用PHP)。通过远程,我的意思是说:evil.com/editXML.php读取myHost.com/map.xml它能够在不登录到我的主机帐户的情况下更改map.xml吗?像在FTP中那样手动?如果是这样,您最好使用prolink007的解决方案。但是,只有当您具有shell访问权限并且允许修改设置时,这才有效。如果您使用的是共享主机,那么您的PHP实例可能与您的FTP使用同一用户运行,或者它们位于同一组中。是的FTP,不,我没有shell访问权限。当我使用共享主机时(我想),这些用户是否能够修改xml文件?如果是这样的话,是否仍然可以停止此操作,但仍然允许我的PHP拥有写入权限?XML是手动上载的,我有一个纬度和经度,如果为空,我将进行地理编码并写入XML文件(使用PHP)。通过远程,我的意思是说:evil.com/editXML.php读取myHost.com/map.xml它能够在不登录到我的主机帐户的情况下更改map.xml吗?像在FTP中那样手动?如果是这样,您最好使用prolink007的解决方案。但是,只有当您具有shell访问权限并且允许修改设置时,这才有效。如果您使用的是共享主机,那么您的PHP实例可能与您的FTP使用同一用户运行,或者它们位于同一组中。是的FTP,不,我没有shell访问权限。当我使用共享主机时(我想),这些用户是否能够修改xml文件?如果是这样的话,有没有办法阻止这种情况,但仍然允许我的PHP拥有写入权限?问题是,我(认为我)需要允许apache更改XML,这需要chmod来允许所有写入权限。想法是,让执行apache或PHP的用户与FTP用户在同一组中。我不确定,但是,难道没有办法将apache添加到该组中吗?我想是的,如果我找到时间(目前正在工作),我会在谷歌上搜索一下,然后进行测试。不过,我相信您可以将apache添加到组中。哦,等等,刚刚尝试过,显然apache已经设置为我的组中。谢谢。问题是,我(认为我)需要允许apache修改XML,这需要chmod来允许所有的写入权限。想法是,让执行apache或PHP的用户与FTP用户在同一个组中。我不确定,但是否也有办法将apache添加到该组中?我想是的,如果我找到时间(目前正在工作),我会在谷歌上搜索一下,然后进行测试。不过,我相信您可以将apache添加到组中。哦,等等,刚刚尝试过,显然apache已经设置为我的组中。谢谢