Home  >  Article  >  Backend Development  >  可以监控是哪个文件执行的sql语句么?

可以监控是哪个文件执行的sql语句么?

WBOY
WBOYOriginal
2016-06-23 13:58:49829browse

有给项目我接手维护,开发人员不是我,但是发现网站可能有后门。
经常被人修改数据。
但是一个文件一个文件看也不一定能找到。
所以想监控哪个文件执行的操作记录下来分析。。
请问有什么方法么?


回复讨论(解决方案)

你的项目使用了数据库类吗?

你的项目使用了数据库类吗?


是指在数据库操作的时候都调用了conn.php这样子么

你的项目使用了数据库类吗?



include文件夹下有db_mysql.class.php

先检查除 db_mysql.class.php 以外的文件中是否有 mysql_query 字样
如果有,则都是需要甄别的地方

在 db_mysql.class.php 文件中方法名含有 query、execute、insert、update、fetch 字样的方法中
加入

file_put_contents('log.txt', print_r(debug_backtrace(), 1), FILE_APPEND);
就可从文件 log.txt 中看到是从什么地方执行了什么样的 sql 指令了

水一下,以后遇到了再看

先检查除 db_mysql.class.php 以外的文件中是否有 mysql_query 字样
如果有,则都是需要甄别的地方

在 db_mysql.class.php 文件中方法名含有 query、execute、insert、update、fetch 字样的方法中
加入

file_put_contents('log.txt', print_r(debug_backtrace(), 1), FILE_APPEND);
就可从文件 log.txt 中看到是从什么地方执行了什么样的 sql 指令了



谢谢。不过我发现有的php文件也自己用到了一些sql语句。我能不能直接写在config.php 里面啊?

先检查除 db_mysql.class.php 以外的文件中是否有 mysql_query 字样
如果有,则都是需要甄别的地方

在 db_mysql.class.php 文件中方法名含有 query、execute、insert、update、fetch 字样的方法中
加入

file_put_contents('log.txt', print_r(debug_backtrace(), 1), FILE_APPEND);
就可从文件 log.txt 中看到是从什么地方执行了什么样的 sql 指令了



Array
(
    [0] => Array
        (
            [file] => /www/web/zlhk/public_html/include/conn.php
            [line] => 3
            [function] => include
        )

    [1] => Array
        (
            [file] => /www/web/zlhk/public_html/madmin45/users.php
            [line] => 8
            [args] => Array
                (
                    [0] => /www/web/zlhk/public_html/include/conn.php
                )

            [function] => include
        )

)
Array

全是类似注意的数据

那是你没按我说的去做!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn