如何在php中禁用反引号运算符?

时间:2018-05-28 08:22:30

标签: php

我在php.ini中禁用了函数,但是反引号操作符仍然有效!

disable_functions = “apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode, curl_exec,curl_multi_exec,parse_ini_file,show_source, symlink”

shel result

如何禁用此运算符?

来自richarvey / nginx-php-fpm的系统linux:最新的docker容器

PHP 7.2.4(cli)(建于:2018年4月5日02:39:05)(NTS)

2 个答案:

答案 0 :(得分:1)

来自php.net:

  

启用安全模式或禁用shell_exec()时,将禁用反引号运算符。

来源:http://php.net/manual/en/language.operators.execution.php

答案 1 :(得分:0)

显然,只有在使用php -r进行通话时,这才会显现出来。在PHP文件中使用时,反引号操作符不会按预期工作。我想,实际的shell调用echo 1并在PHP执行之前注入PHP代码,因此您实际执行:

echo 1;