用户可以操作php_sapi_name()返回的值吗?
我有一个看起来像这样的脚本:
if( php_sapi_name() !== "cli" ){
die( "NoAccess" );
}
// Do some admin stuff
此脚本只应通过命令行调用(!)。上面的代码安全吗?或者有人可以通过HTTP调用脚本并在if条件之外执行它吗?
答案 0 :(得分:4)
php_sapi_name()
的返回值可以安全依赖。它不是从用户数据生成的。
如果您不希望从Web服务器调用此脚本,则不应该让Web服务器访问此脚本。如果您关心安全问题,则根本无法访问此脚本。
您还提到了.htaccess
...不要使用它,在其他地方使用正确的配置文件。必须为每个请求加载和解析.htaccess
,这是无效的。