RT,我现在在给一个PHP项目做代码审计,找到了一个有漏洞的方法,但是我怎么快速找出所有其他文件中调用过这个方法的地方,还有调用这个方法的参数在其他什么位置传过来的,如果有这种工具就方便多了,求推荐
我也没有什么好的方法,我说说我的做法,感觉楼主也已经试过。
PhpStorm ,点击方法,按快捷键 ALT + F7 或 CTRL + ALT +SHIFT +F7 查找所有使用。参数变量按 F4 或 CTRL + 鼠标左键 查找来源。(这种查找其实还有很多引用没有办法找到),如循环某个对象集合中调用这个对象的方法
PhpStorm
ALT + F7
CTRL + ALT +SHIFT +F7
F4
CTRL + 鼠标左键
如果是动态方法,如 function test() 全局搜索 ->test( 和 ->test (
function test()
->test(
->test (
如果是静态方法,如 static function test() 全局搜索 Class::test( 和 Class::test (
static function test()
Class::test(
Class::test (
通过上面三种步骤,还是可能遗漏,如动态参数调用,所以还要兼顾搜索一下方法字符串 'test'
'test'
$func = 'test'; $ojb->$func();
PHPStorm
phpStorm 但ajax你就没法判断了
如果是查看运行调用情况参数传递及值的变化,可以使用php debug工具,推荐kint如果是想知道哪些文件可能会调用,可以用sublime 的在文件夹中查找以上推荐的工具都是很轻很小的。
我也没有什么好的方法,我说说我的做法,感觉楼主也已经试过。
PhpStorm
,点击方法,按快捷键ALT + F7
或CTRL + ALT +SHIFT +F7
查找所有使用。参数变量按F4
或CTRL + 鼠标左键
查找来源。(这种查找其实还有很多引用没有办法找到),如循环某个对象集合中调用这个对象的方法如果是动态方法,如
function test()
全局搜索->test(
和->test (
如果是静态方法,如
static function test()
全局搜索Class::test(
和Class::test (
通过上面三种步骤,还是可能遗漏,如动态参数调用,所以还要兼顾搜索一下方法字符串
'test'
PHPStorm
phpStorm 但ajax你就没法判断了
如果是查看运行调用情况参数传递及值的变化,可以使用php debug工具,推荐kint
如果是想知道哪些文件可能会调用,可以用sublime 的在文件夹中查找
以上推荐的工具都是很轻很小的。