Es ist üblich, dass Plugin-Entwickler ihre Plugins vor direktem Zugriff schützen. Ich sah zwei Möglichkeiten, das zu tun:
if ( ! defined( 'WPINC' ) ) die;
und
if ( ! defined( 'ABSPATH' ) ) exit;
Was sind die Unterschiede zwischen WPINC und ABSPATH? Welches ist der 'richtige' Weg, dies zu tun?
plugins
php
plugin-development
Daniel
quelle
quelle
if ( ! defined( 'ABSPATH' ) ) exit;
... aber vielleicht sollte man bedenken, dass der Umfang dieses Snippets sicherstellt, dass WordPress geladen ist. 'WPINC' ist besser, weil es mehr WordPress -fähig ist , mit 'WP' anzustarren .if ( ! defined( 'WPINC' ) ) die;
undif ( ! defined( 'ABSPATH' ) ) exit;
fügen Sie eine zusätzliche Sicherheitsebene hinzu, indem Sie den direkten Zugriff auf Ihre Plug-in-Datei verhindern.ABSPATH
ist eine PHP-Konstante, die von WordPress in ihrem Kern definiert wird.Wenn auf Ihre Plugin-Datei von außerhalb von WordPress zugegriffen wird, wird die Konstante
ABSPATH
oderWPINC
nicht definiert, sodass der Plugin-Code beendet wird und ein unbefugter Zugriff auf Ihren Code verhindert wird.ABSPATH
undWPINC
sind in WordPress Core definiert als:Beide werden für den gleichen Zweck verwendet.
quelle
Sie können sich selbst überprüfen. Schauen Sie sich
wp-load.php
einfach den WordPress-Spiegel auf GitHub an.Selbst ein kurzer Blick zeigt, dass die aktuell ausgewählte Antwort hinsichtlich der
ABSPATH
Definition nicht mehr korrekt ist. Wenn Sie verschiedene Tags auf GitHub vergleichen,ABSPATH
ändert sich die Definition im Laufe der Zeit.Da diese für die Sicherheit verwendet werden, würde ich gehen
ABSPATH
. Der Grund dafürABSPATH
ist , dass er nicht nur zuerst im WP-BootstrapperWPINC
definiert wird, sondern unter einer Bedingung in derselben Datei definiert wird und daher mit größerer Wahrscheinlichkeit eine zukünftige Regression erfährt.Auch wenn Sie nicht ausdrücklich dazu aufgefordert wurden, haben Sie Beispiele mit beiden
die
und angegebenexit
. Lautdevdocs.io
, das sich auf die offizielle API-Dokumentationdie
stützt , ist dies äquivalent zuexit
, sodass Sie eine der beiden Optionen auswählen können und es keinen Unterschied macht.Beide
die
undexit
akzeptieren Argumente, sodass Sie in Betracht ziehen können, sie zum Ausgeben einiger nützlicher Informationen zu verwenden, z. B. eines verschlüsselten Versions-Tags oder von Kontaktinformationen, oder einen Beendigungscode wie0
oder-1
zur weiteren Verarbeitung zu übergeben.Erwähnenswert ist auch, dass dies auch
wp_die
eine Sache ist. Nicht zu verwechseln mit den integrierten PHP-Funktionen, sondern als Kompliment für die Ausgabe von HTML-Code zusätzlich zu einfachem Text und wird derzeit im gesamten WordPress-Kern großzügig verwendet. Erfahren Sie mehr überwp_die
auf WordPress.org.quelle