J'ai un site wordpress sur lequel j'ai exécuté un outil de test d'intrusion (le mode débogage était activé à l'époque)
Elle a signalé un problème (de gravité moyenne) en ce que des erreurs étaient affichées, et a cité
/wp-login.php?redirect_to[]=blah
comme déclenchant un avertissement:
urlencode()
s'attend à ce que le paramètre 1 soit une chaîne, tableau donné dans/home3/.../wp-includes/general-template.php
à la ligne 340
Lorsque j'ai désactivé le mode débogage et rejoué la session, la redirection a eu lieu et m'a redirigé vers/Array
Ce qui me préoccupe, c'est que wordpress tente peut-être d'évaluer le nom du paramètre de chaîne de requête d'une manière exploitable.
Suis-je trop paranoïaque?
Je pense que ce n'est rien d'inquiétant.
La cible de redirection est assainie et validée beaucoup. Pour être honnête, je pense que je n'ai jamais vu de code WordPress où de nombreuses vérifications ont été effectuées pour les vecteurs d'attaque les plus obscurs.
Enfin, lorsque vous convertissez un tableau en chaîne, la chaîne Array
est renvoyée, comme vous l'avez déjà vu.
Les tableaux sont toujours convertis en chaîne "Tableau";
Cela se produit dans _deep_replace
.
Donc, mon opinion personnelle est que cela devrait aller. Voyons ce que disent les autres.
Ce qui me préoccupe, c'est que wordpress tente peut-être d'évaluer le nom du paramètre de chaîne de requête d'une manière exploitable.
Pourquoi cette possibilité particulière?
Si vous regardez la source - et que l'erreur le laisse supposer -, ce qui se passe, c'est que le code WordPress tente de _urlencode
le paramètre de requête redirect_to
, qu’il s’attend à être une chaîne. Les crochets que vous avez ajoutés font de ce paramètre un tableau qui, traité comme une chaîne, est "Array".
Vous pourriez faire valoir que WordPress devrait vérifier le type des données avant d'essayer de les manipuler, mais je ne pense pas qu'il y ait quoi que ce soit exploitable. Essentiellement, le tableau que vous essayez d'insérer dans ce paramètre est converti par PHP en chaîne inoffensive "Array".