更正不允许 public 执行的 PHP 文件的文件权限

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

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

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

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