RT,我現在在給一個PHP專案做程式碼審計,找到了一個有漏洞的方法,但是我怎麼快速找出所有其他文件中調用過這個方法的地方,還有調用這個方法的參數在其他什麼位置傳過來的,如果有這種工具就方便多了,求推薦
滿天的星座2017-05-27 17:43:57
我也沒有什麼好的方法,我說說我的做法,感覺樓主也已經試過。
PhpStorm
,点击方法,按快捷键 ALT + F7
或 CTRL + ALT +SHIFT +F7
查找所有使用。参数变量按 F4
或 CTRL + 鼠标左键
查找來源。 (這種查找其實還有很多引用沒辦法找到),如循環某個物件集合中呼叫這個物件的方法
如果是動態方法,如 function test()
全局搜索 ->test(
和 ->test (
如果是靜態方法,如 static function test()
全局搜索 Class::test(
和 Class::test (
透過上面三種步驟,還是可能遺漏,如動態參數調用,所以也要兼顧搜尋一下方法字串 'test'
$func = 'test';
$ojb->$func();
滿天的星座2017-05-27 17:43:57
如果是查看運行調用情況參數傳遞及值的變化,可以使用php debug工具,推薦kint
如果是想知道哪些文件可能會調用,可以用sublime 的在文件夾中查找
以上推薦的工具都是很輕很小的。