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

时间:2017-01-09 22:33:36

标签: php security

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

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

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

// Do some admin stuff

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

1 个答案:

答案 0 :(得分:4)

php_sapi_name()的返回值可以安全依赖。它不是从用户数据生成的。

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

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