Je viens de voir ce code tout en étudiant le code de source WordPress (PHP), vous pouvez voir qu'ils sont férogrés / Tournez toutes les valeurs d'origine et de publication en 1 matrice de demande.
Maintenant, comme je le sais, $ _GET et $ _Post sont déjà disponibles en appelant $ _Request sans strong> à l'aide de la fonction Array_Merge (), donc des idées pourquoi elles feraient cela? P> < Pré> xxx pré> p>
4 Réponses :
Ceci est donc si vous avez une variable d'obtention et une variable de poste avec le même nom, elle choisira la variable de poteau sur l'en obtenir une. P>
Aussi, vous ne voulez pas ne pas vouloir les cookies de la variable $ _Request. p>
En fait, il choisira le $ _Post sur la $ _GET. Array_Merge Manuel: php.net/manual/fr/funcunction.array-merge .php
"[...] Il choisira la variable Obtenir la variable sur la poste". Ce n'est pas vrai; C'est l'inverse. Les valeurs de ces dernières tableaux avec les clés correspondantes remplacent les anciennes valeurs. Voir php.net/array_merge
Je ne sais pas spécifiquement pourquoi cela a été fait où vous l'avez vu, mais je l'ai vu précédemment lorsque un traitement a été effectué sur les valeurs d'un tableau ou d'une autre et que vous souhaitez fusionner ces changements dans $ _Request de sorte que quiconque utilise $ _Request obtiendra les changements même s'ils ont été effectués aux variables $ _Post ou $ _BET. P>
Ceci apparaît dans des situations telles que WordPress, car les développeurs de plugins pourraient utiliser l'une de ces variables pour accéder aux données et le noyau WordPress devra s'assurer qu'ils obtiennent tous les mêmes données. P>
Pourquoi ne voudriez-vous pas le faire à $ _Request directement? Parce que $ _Request contient une tonne d'informations supplémentaires que $ _Post et $ _GET n'ont pas. Vous ne voudrez peut-être pas appliquer votre traitement à tous ces bits supplémentaires. P>
$ _ demande code> contient le contenu de
$ _ obtenir code>,
$ _ post code> et
_ biscuit code> par défaut. Peut-être qu'ils veulent exclure les variables de cookies, car elles ne sont généralement pas utilisées à cet effet. P>
Ya, peut-être pour des raisons de sécurité, ils veulent éliminer les cookies de $ _Request, être en mesure d'utiliser Get et Poster ensemble. +1 pour les grands esprits en train de penser.
Oui, il s'agit d'un vecteur d'attaque XSS commun, car le JavaScript malveillant peut définir des cookies Vars sans que l'utilisateur notant, et la commande GPC par défaut de PHP signifie que ces valeurs de cookie remplaceront les types d'utilisateurs dans le formulaire.
C'est parce que la demande htth p> _ _ _ par défaut est une fusion de
$ _ obtenez code>,
$ _ post code> et
_ cookie code> . En outre, l'ordre dans lequel les variables de ces super -globaux sont fusionnées dans
_ demande code> dépend du paramètre INI
variables_order code> et à partir de PHP 5.3.0 peut également être influencé par < Code> request_order code>.
Je suppose donc que le développeur voulait s'assurer que
$ _ demande code> est composé uniquement de
$ _ obtenir code> et
$ _ = / code>, fusionné dans cette commande particulière, S'il n'avait pas accès aux paramètres INI (sur un hôte partagé par exemple). Vous voyez,
variables_order code> et
request_order code> n'est pas configurable sur une base de script. P>