这似乎是一个愚蠢的问题,但我用Google搜索无济于事。
我一直认为PHP是一种用于创建动态数据库驱动站点的语言,我从未想过用它来移动实际服务器上的系统文件(因为我从来没有需要)。我的问题是:
我从未想过,如果恶意黑客能够将某些PHP注入某个站点,那么他们将被有效地授予对整个Linux服务器(及其所有系统文件)的访问权限。我只想过将PHP作为在/ vhosts目录中运行的东西(也许天真地)。
很抱歉,如果这听起来像是一个愚蠢的问题,但是我无法真正测试我的理论,好像我的老板要看我编写/上传/执行一个在Linux文件系统中移动内容的脚本我会死的。
感谢您的帮助! :)
答案 0 :(得分:3)
PHP可以向您的服务器提供其运行的用户帐户的权限,以允许它执行。 PHP作为一种语言不受任何限制(至少在权限方面),它是受限制的用户帐户。
这就是为什么人们通常会在这里为Apache / nginx / insert web服务器创建一个用户来运行,并且只授予它操作与Web服务器相关的文件和目录的权限。如果您未授予此用户/bin
或/etc
的访问权限,则无法执行任何会影响他们的操作。
这是一个好主意/实践吗?
通常不会。将系统管理留给sysadmin而不是请求PHP脚本的用户。
答案 1 :(得分:1)
是的,可以。它是一种编程语言,它可以做任何事情。
这完全取决于谁在运行它。如果它root
它可以做任何事情。如果它只是普通用户 bob 。它不能在家外/home/bob
做很多事情。 Apache也像 bob 。 Apache 通常在 www-data , www , apache 用户名下运行。
答案 2 :(得分:1)
PHP可以尝试调用许多系统命令来移动或直接编辑硬盘上的文件。是否成功取决于安全设置。
让我们假设您运行PHP通过apache和apache设置为以用户www-data运行所有进程 - 这是OS的默认设置,如Debian。如果你给用户www-data权限编辑/ etc然后是,PHP可以读取和写入/ etc中的文件
您发现只有一个主要缺点;安全,安全和保障。您还可以更好地确保您的PHP正常工作,因为1错误编写的文件现在可以取消整个服务器。
我绝对不会在你的老板身后练习你的老板。考虑获得一个廉价的虚拟机,无论是在其他地方托管还是在您自己的虚拟机的curtsey
上