PHP exec函数执行的命令是否存在日志?相关日志文件在哪里查找?
PHP exec函数执行日志相关问题解答
默认是否存在exec执行的专属日志?
PHP本身没有内置针对exec()这类系统命令执行函数的日志记录逻辑,默认不会自动存储任何通过exec传递的命令内容、执行结果,也没有固定的专属日志存储路径。
哪些场景下会留存exec执行记录?
存在以下配置时,exec执行的命令可能会被记录,对应存储位置如下:
- 代码手动埋点记录:如果业务代码中主动对
exec调用做了日志写入,日志存储路径为代码中自定义的文件路径 - 系统层审计规则记录:Linux服务器如果配置了
auditd审计规则,监控web服务进程的命令执行行为,相关记录会默认存储在/var/log/audit/audit.log - Web服务访问日志记录:如果
exec执行的命令参数来自HTTP请求参数,且Nginx/Apache开启了全请求参数日志,相关内容会留存到web服务配置的日志目录下,默认路径一般为/var/log/nginx/或/var/log/apache2/ - 命令自身日志记录:如果
exec调用的系统命令本身自带日志输出逻辑,会在对应命令的日志文件中留下执行记录
服务器被入侵后能否查询到exec执行的命令?
是否能查询到取决于服务器是否存在上述的日志记录配置:
若没有配置任何审计规则、代码也没有手动写日志、执行的命令本身也无日志输出,无法追溯到过往的
exec执行记录。
若存在任意一种日志留存配置,就可以从对应日志文件中检索到相关执行记录,用于排查入侵阶段的恶意操作。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

