2017-04-04 7 views
6

Ich baue gerade ein WordPress-Theme von Grund auf neu, um am Arbeitsplatz zu lernen. Ich habe mäßige Erfahrung mit der Backend-Arbeit, obwohl ich in der Vergangenheit stark von PageBuilders abhängig war. Ich möchte jetzt ein Thema ohne Pagebuilders als Mittel zum Erstellen seiner Ladegeschwindigkeit usw. jetztWas ist mit [if (! Defined ('ABSPATH'))] gemeint?

zu erhöhen, ich bin derzeit für die Website-Dateien auf Sicherheit suchen und stieß auf den folgenden Ausdruck:

<?php 
    if (! defined('ABSPATH')) { 
     exit; // Exit if accessed directly 
    } 
?> 

Ich bin der Meinung, dass dies den direkten Zugriff auf die Web-Dateien verhindern würde. Ich bin mir nicht ganz sicher, was damit gemeint ist. Zum Beispiel könnte ich immer noch über FTP, über den Server und über das WordPress Dashboard auf die Datei (en) zugreifen. Gibt es einen anderen direkten Zugang, den dies verhindert? Vielleicht verhindert den Zugang über WordPress Plugins etc?

In diesem Sinne, würde ich zu Recht davon ausgehen, dass der obige Code als Standard in jede Datei innerhalb des Themas platziert werden sollte? Gab es Ausnahmen?

Jede weitere Erklärung zu diesem Thema wäre sehr willkommen.

+2

nicht nur voreiligen Schlüsse ziehen sie wegen ein Wort zu erkennen. _Think_ über was der Code eigentlich sagt. Das ist nicht mehr als: exit, wenn der costant 'ABSPATH' nicht definiert wurde. Nicht mehr. Ob das in Sicherheitsfragen gut ist, hängt von vielen anderen Details ab. Sicherlich wollen Sie _nicht_ blind irgendwo ein Code-Snippet kopieren, das Sie irgendwo gefunden haben. – arkascha

+3

Wenn Sie über Wordpress auf eine URL zugreifen, greifen Sie auf die Datei 'index.php' zu. Diese Datei setzt die Konstante "ABSPATH" (zu dem Pfad, in dem sie sich befindet). Die Überprüfung, die Sie sehen, stellt sicher, dass Sie über 'index.php' auf die Seite zugreifen und nicht versuchen, diese Datei * direkt * zu durchsuchen. Wie zum Beispiel versuchen, auf "http: // example.com/wp-content/your_file.php" zuzugreifen (ich bin mir nicht sicher, wie Wordpress seine Dateien speichert, nur ein Beispiel) –

+0

Es gibt sicherlich bessere (robustere) Mittel zu verhindern Zugriff auf beliebige Dateien in einigen Web-Installationen als script-interne Konstanten. Ein solcher Schutz sollte auf der Ebene des http-Servers erfolgen. – arkascha

Antwort

5

Es verhindert, dass öffentliche Benutzer direkt auf Ihre .php-Dateien über URL zugreifen. Wenn Ihre Datei einige E/A-Vorgänge enthält, kann sie möglicherweise (von einem Angreifer) ausgelöst werden und dies kann zu unerwartetem Verhalten führen.

So kann die Verwendung der Snippets den Zugriff von Ihren Dateien (direkt) verhindern und stellt sicher, dass Ihre Theme-Dateien nur innerhalb der WordPress-Umgebung ausgeführt werden.

Verbrauch:

  1. Es kann
  2. an der Spitze Ihrer wp-config.php platziert an der Spitze eines Ihrer PHP-Dateien (Thema & Plugin)
  3. Es platziert werden können

Hoffe, es hilft

+0

Dank dir @ devsam247 jetzt verstehe ich;) – HanniBaL90

+0

@ devsam247 Danke für deine Antwort.Würde ich dann richtig denken, dass die bedingte Logik in meiner Frage effektiv lautet: 'Wenn diese Datei direkt in der URL aufgerufen wird, laden Sie den Rest des Dateiinhalts nicht in den Browser. Wenn auf die Datei innerhalb der WordPress-Umgebung zugegriffen wird, lade den Inhalt der Datei weiter.' – Craig

Verwandte Themen