PHP:php_sapi_name()是否安全(用户可以操作它)吗?

Tre*_*eam 6 php security

用户可以操作php_sapi_name()返回的值吗?

我有一个看起来像这样的脚本:

if( php_sapi_name() !== "cli" ){
   die( "NoAccess" );
}

// Do some admin stuff
Run Code Online (Sandbox Code Playgroud)

该脚本只应通过命令行调用(!).上面的代码安全吗?或者有人可以通过HTTP调用脚本并在if条件之外执行它吗?

Bra*_*rad 4

php_sapi_name()的返回值是安全可靠的。它不是根据用户数据生成的。

如果您不希望从您的 Web 服务器调用此脚本,则您不应该让您的 Web 服务器访问该脚本。如果您关心安全,则根本无法访问此脚本。

您还提到.htaccess...不要使用它,在其他地方使用正确的配置文件。 .htaccess必须为每个请求进行加载和解析,这效率不高。