Maison > Questions et réponses > le corps du texte
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.
滿天的星座2017-05-27 17:43:57
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
查找所有使用。参数变量按 F4
或 CTRL + 鼠标左键
查找来源。(这种查找其实还有很多引用没有办法找到),如循环某个对象集合中调用这个对象的方法
如果是动态方法,如 function test()
全局搜索 ->test(
和 ->test (
如果是静态方法,如 static function test()
全局搜索 Class::test(
和 Class::test (
通过上面三种步骤,还是可能遗漏,如动态参数调用,所以还要兼顾搜索一下方法字符串 '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>
🎜Grâce 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();
répondre0
滿天的星座2017-05-27 17:43:57
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.