php - php 的 proc_open 命令历史记录

标签 php apache

有没有办法访问php的proc_open函数的命令历史记录?我正在尝试查看是否出于安全目的存储了命令。

最佳答案

PHP 的 proc_open()不保留任何类型的历史,exec() 也不保留。但是,当您在代码中使用它时,您可以将其包装起来;但是,您必须编写自己的历史记录处理。偶shell_exec()似乎没有跟踪历史记录。

但是,如果我们稍微忽略 PHP,我们可以使用 Linux 的审计子系统来跟踪系统上执行的所有命令。名为 auditd 的守护进程执行此日志记录,您可以通过 auditctl 配置它。 Here有关审计子系统、设置和使用的更多信息。

要记录所有执行的命令及其参数,请使用:

auditctl -a exit,always -S execve

日志应显示在 /var/log/audit.log 中,或您的发行版放置审核日志的任何位置。

auditctl有很多选项指定记录哪些程序以及记录哪些用户的事件。

您可以使用-F euid=<UID OF PHP USER>-F uid=<UID OF PHP USER>将其限制为 PHP/Apache 用户。

关于php - php 的 proc_open 命令历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523587/

相关文章:

php - 此PHP代码是否会使其他人的Apache崩溃?

php - 它没有在数据库中插入正确的值?

php - php.ini 中的 session.cookie_secure 是自动的吗?

php - MediaWiki:PHP 警告:mysqli::real_escape_string() 期望参数 1 为字符串,给定对象

php - 通过 Post 传递数组并从数据库中提取数据

apache - 启动hadoop时出错

PHP 错误 : Array to string conversion

apache - 单击我网站上的链接时阻止发送引荐来源网址,但一个域除外

php - htaccess 重定向中的元音变音

python - 如何使用 Sudo 在生产服务器上配置 Django 电子邮件