it-swarm.com.de

Ist die Verwendung von $ _SERVER ['REQUEST_URI'] sicher?

Ich habe mir andere Antworten angesehen und festgestellt, dass $_SERVER['REQUEST_URI'] normalerweise empfohlen wird und die akzeptierte Antwort ist, um die aktuelle Seiten-URI zusammen mit $_SERVER['HTTP_Host'] abzurufen.

Ich habe mir den Quellcode von WP angesehen und er ist dort auch weit verbreitet.

Aber ich fand einige Kontroversen darüber, dass es nicht mit IIS funktioniert. Vielleicht war es nur ein Problem in der Vergangenheit? Ich habe sogar versucht, IIS auf meinem PC zu installieren, um es zu überprüfen, aber ich kann es nicht konfigurieren und es scheint ein Overkill zu sein, nur um dies zu bestätigen.

Anscheinend ist es die einzige SERVER-Variable, die die gewünschten Informationen enthält:

/ pane-slug/nggallery/tags/dark-colors/

der hervorgehobene Beispielteil wird über NextGEN Gallery 2 hinzugefügt und ist nur über den $_SERVER['REQUEST_URI'] zugänglich, sonst nichts. Zuvor war der Zugriff mit get_query_var nicht mehr möglich.

Wenn $_SERVER['REQUEST_URI'] nicht festgelegt ist, führt das Fälschen durch manuelles Festlegen und Erstellen auf der Grundlage von PHP_SELF und QUERY_STRING zu ungleichen Ergebnissen.

Ist es also sicher, sich darauf zu verlassen, dass $_SERVER['REQUEST_URI'] bei WP -Installationen immer zur Verfügung steht? Ich nehme an, es liegt daran, dass der WP Kerncode es verwendet, aber ich musste fragen.

3

$_SERVER['REQUEST_URI'] wird in WordPress nicht leer sein, da es in wp_fix_server_vars() (file wp-includes/load.php) eingetragen ist.

Diese Funktion wird in wp-settings.php aufgerufen, bevor ein Plugin geladen wird. Also kannst du es benutzen.

Aber immer dem Wert entkommen. Es ist global und kann von jedem anderen Code geändert werden, sodass Sie seinem Wert nicht vertrauen können.

Ein anderer Fall ist der Zugriff auf den Wert per

filter_input(INPUT_SERVER, 'REQUEST_URI'); 

Der Schreibzugriff von WordPress wird nicht den Wert beeinflussen, da filter_input() immer den ursprünglichen Wert annimmt. Dies ist zwar der modernere und sauberere Ansatz, kann jedoch unter bestimmten Umständen fehlschlagen. Siehe auch dieser Thread zum Stack Overflow .

8
fuxia