首頁 > 後端開發 > php教程 > 可以监控是哪个文件执行的sql语句么?

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

WBOY
發布: 2016-06-23 13:58:49
原創
850 人瀏覽過

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


回复讨论(解决方案)

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

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


是指在数据库操作的时候都调用了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

全是类似注意的数据

那是你没按我说的去做!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板