Von Zeit zu Zeit bin ich auf das folgende Snippet in Themes gestoßen:
if ( ! defined('ABSPATH')) exit('restricted access');
Es steht am Anfang einiger (aller?) PHP Dateien in einem Thema und soll den direkten Zugriff auf die Datei durch schädliche Quellen verhindern.
Ich sehe, dass dies nicht in Twenty Ten oder Eleven enthalten ist und ich habe es nie in der offiziellen WordPress-Dokumentation empfohlen gesehen. Es scheint mir eine gute Idee zu sein, aber ich weiß auch nicht genug über Sicherheit, um es beurteilen zu können, und kann bei Google nicht viel finden.
Ist das etwas, was ich in meinen benutzerdefinierten Designs haben sollte? Wenn ja, sollte es in allen PHP Dateien sein oder nur in einigen?
Normalerweise brauchen Sie es nicht. Aber… es gibt mindestens einen Edge-Fall:
on
,… Kann ein Angreifer diese Datei aufrufen, die fehlenden Variablen mit GET
oder POST
setzen und die Themendatei zum Ausdrucken bringen. Und dann gibt es ist ein Sicherheitsproblem.
Also… die beste Option ist nicht eine Kontextprüfung wie in Ihrem Beispiel, sondern ein guter Code: Vermeiden Sie globale Variablen, überprüfen Sie deren Inhalt, bevor Sie sie ausdrucken.
In einigen Fällen füge ich die Kontextprüfung hinzu, wenn ich denke, dass jemand anderes meinen Code verwendet und ihn ohne Rücksicht auf die Sicherheit ändert. Es tut nicht weh.