使用mySQL进程id查找发出查询的PHP脚本

使用mySQL进程id查找发出查询的PHP脚本,php,mysql,Php,Mysql,我们正试图找到一个PHP脚本,它正在组装一个查询并造成严重破坏。到目前为止,我们还没有成功地使用grep来定位脚本 是否可以使用show processlist中的mySQL PID来定位发出查询的PHP脚本?不这样认为。这在很大程度上取决于实际的架构和拓扑结构 可能-这也可能造成巨大的破坏,具体取决于上下文-您可以尝试覆盖mysql_查询函数(或各种脚本中使用的任何包装器),以便识别行为不当/恶意查询并记录所有相关信息 见: 由于日志记录将在浩劫脚本的“内部”进行,因此可以获得更多的信息 另一

我们正试图找到一个PHP脚本,它正在组装一个查询并造成严重破坏。到目前为止,我们还没有成功地使用grep来定位脚本


是否可以使用
show processlist
中的mySQL PID来定位发出查询的PHP脚本?

不这样认为。这在很大程度上取决于实际的架构和拓扑结构

可能-这也可能造成巨大的破坏,具体取决于上下文-您可以尝试覆盖mysql_查询函数(或各种脚本中使用的任何包装器),以便识别行为不当/恶意查询并记录所有相关信息

见:

由于日志记录将在浩劫脚本的“内部”进行,因此可以获得更多的信息

另一种可能是过滤MySQL查询,并在脚本中诱导一些可识别的行为,如等待很长时间或抛出错误。这可能通过MySQL代理实现:

假设脚本是恶意的,无法找到它可能意味着某种加密——通常这类脚本大量使用eval()、base64_decode,有时还使用gzuncompress()。查找这些函数可能比搜索查询片段更有效率


一个有用的黑客,现在不是很有用,可能是用提示性的注释来“修饰”查询,例如,“选择…,其中…;--012345”:MySQL会忽略“-012345”部分,但可以很容易地记录,而grepping“-012345”会很快找到目标。

如果PHP通过TCP连接到MySQL服务器,然后,您可以将
主机
信息与打开该端口的pid进行协调(尽管我不相信这会让您更接近于识别底层PHP脚本);但是,如果连接通过UNIX套接字,此方法将不起作用。您可以让PHP将脚本+MySQL连接ID写入某个日志文件中?