RT, je fais actuellement un audit de code pour un projet PHP et j'ai trouvé une méthode vulnérable, mais comment puis-je savoir rapidement où cette méthode a été appelée dans tous les autres fichiers et où se trouvent les paramètres pour appeler cette méthode ? transmis. Ce serait beaucoup plus pratique s'il existait un tel outil, veuillez le recommander.
Je n’ai pas de bonnes méthodes. Je vais juste parler de mon approche, j’ai l’impression que l’affiche l’a déjà essayée.
PhpStorm
, cliquez sur la méthode, appuyez sur la touche de raccourci ALT + F7
ou CTRL + ALT +SHIFT +F7
pour trouver toutes les utilisations. Pour les variables paramètres, appuyez sur F4
ou CTRL + bouton gauche de la souris
pour trouver la source. (Il existe en fait de nombreuses références introuvables dans ce type de recherche), comme parcourir une collection d'objets pour appeler la méthode de cet objetPhpStorm
,點擊方法,按快捷鍵 ALT + F7
或 CTRL + ALT +SHIFT +F7
查找所有使用。參數(shù)變量按 F4
或 CTRL + 鼠標(biāo)左鍵
查找來源。(這種查找其實還有很多引用沒有辦法找到),如循環(huán)某個對象集合中調(diào)用這個對象的方法
如果是動態(tài)方法,如 function test()
全局搜索 ->test(
和 ->test (
如果是靜態(tài)方法,如 static function test()
全局搜索 Class::test(
和 Class::test (
通過上面三種步驟,還是可能遺漏,如動態(tài)參數(shù)調(diào)用,所以還要兼顧搜索一下方法字符串 'test'
function test()
, recherchez globalement ->test(
et ->test (
??
????S'il s'agit d'une méthode statique, telle que static function test()
, recherchez globalement Class::test(
et Class::test ( code>?? li>
??Grace aux trois étapes ci-dessus, vous risquez encore de manquer des éléments tels que des appels de paramètres dynamiques. Vous devez donc également envisager de rechercher la cha?ne de méthode 'test'
????
$func = 'test';
$ojb->$func();
Si vous souhaitez vérifier le transfert des paramètres et les changements de valeur de l'appel en cours, vous pouvez utiliser l'outil de débogage php Kint est recommandé.
Si vous souhaitez savoir quels fichiers peuvent être appelés, vous pouvez utiliser sublime pour rechercher dans le .
Les outils recommandés ci-dessus sont tous très légers et petits.