更正PHP文件的文件权限,如果该文件没有';不允许公众执行


Correct file permissions for PHP file that doesn't allow the public to execute

我有一个php文件,它将某些值写入我的数据库。我用CRON每20秒执行一次这个文件,但我不希望有人能够转到这个文件的位置并从网络上执行它。我已经将文件权限设置为644,但我仍然可以访问website.com/phpfile.php并将数据写入数据库。如何阻止公众执行脚本?

在目前使用的典型设置中,php脚本不需要http服务器执行执行权限位。这是因为请求不启动脚本是基于操作系统的进程。相反,http服务器只读取文件并将内容提供给作为模块加载的php引擎。因此,所需的唯一权限是http服务器进程可以读取脚本。

如果您通过CGI使用php而不是作为http服务器模块,情况会有所不同。但这会带来严重的性能损失,正是因为每个请求都必须分叉一个新的进程。