用户能否操作php_sapi_name()返回的值?
我有一个脚本,看起来像这样:
if( php_sapi_name() !== "cli" ){
die( "NoAccess" );
}
// Do some admin stuff
这段脚本应该仅仅(!)通过命令行调用。上面的代码是安全的吗?或者有人可以通过HTTP调用这个脚本并在if条件之外执行它吗?
用户能否操作php_sapi_name()返回的值?
我有一个脚本,看起来像这样:
if( php_sapi_name() !== "cli" ){
die( "NoAccess" );
}
// Do some admin stuff
这段脚本应该仅仅(!)通过命令行调用。上面的代码是安全的吗?或者有人可以通过HTTP调用这个脚本并在if条件之外执行它吗?
php_sapi_name()
的返回值是安全可靠的,不会受到用户数据的影响。
如果您不希望该脚本被Web服务器调用,那么您不应该将其放在Web服务器上。如果您关心安全性,那么该脚本根本不应该被访问。
您还提到了.htaccess
...不要使用它,请在其他地方使用适当的配置文件。.htaccess
必须为每个请求加载和解析,这是不高效的。