Ist das Speichern von Konfigurationsvariablen in einer XML -Datei auf einer PHP -Site unter dem Site -Root zu riskant?

StackOverflow https://stackoverflow.com/questions/605308

  •  03-07-2019
  •  | 
  •  

Frage

Mir ist aufgefallen, dass Magento MySQL -Verbindungsdetails in einer XML -Datei speichert, die nicht über dem Docroot gesichert ist. Das scheint ... gut gefährlich.

XML scheint eine praktische Möglichkeit zu sein, Konfigurationsdaten mit Ausnahme eines zu speichern, wenn man eingreift http://www.domain.com.au/library/config.xml wird der Welt Ihre privaten Details zeigen!

Ich habe eine XML -Datei verwendet und diese meiner .htaccess -Datei hinzugefügt.

<Files ~ "\.xml$"> // regex files that end with xml extension
Order allow,deny 
Deny from all // don't show them
</Files>

Jetzt ich war Ich bin damit zufrieden, jetzt bin ich mir nicht sicher. Was ist, wenn die .htaccess -Datei versehentlich gelöscht/beschädigt wird (geschieht dies neben menschlichem Fehler) und was ist, wenn ich eines Tages die App auf einen Nicht -Apache -Server platzieren möchte? Hat jeder Server das Äquivalent zum Blockieren von XML -Dateien und hat? Wenn dies der Fall ist, können sie auf einer Ordnerebene wie die .htaccess können (und nicht nur eine httpd.conf -Datei) geändert werden.

Meine Frage ist ... ist die Bequemlichkeit von XML (einfach zu aktualisieren, Designer, die Bastler nicht so eingeschüchtert fühlen), überwiegt die potenziellen Probleme (private Daten aufdecken)?

War es hilfreich?

Lösung

Ich würde persönlich nur Konfigurationsdateiinformationen in einem Format speichern, das nicht in einem direkt zugänglichen Format oder Ort ist. Daher würde ich entweder das XML -Format über dem Docroot verwenden oder das Format von PHP $ config ['varname'] = 'Wert' verwenden. Die spätere Methode würde einfach eine leere weiße Seite rendern, wenn sie direkt aufgerufen wird (solange es sich nur um PHP handelt und keine HTML enthält und nicht ausgeht).

Galerie, Vbulletin und Joomla verwenden alle die zweite Methode, die ich erwähnt habe. Ich weiß, dass ich diese Projekte zuvor in anderen PHP -Fragen erwähnt habe, aber es scheint eine Methode zu sein, die zwischen Projekten weit verbreitet und akzeptiert wird.

Andere Tipps

Kurze Antwort, nein ist es nicht. Aber eine bessere Frage wäre. Wenn es nicht in einer Konfigurationsdatei gespeichert wird, wo würden Sie sie behalten?

Ich stimme in diesem Zusammenhang voll und ganz zu, biete aber auch eine dritte Option an, die mit beiden kombiniert werden sollte

Nennen Sie die Dateispeicherungskonfigurationsinformationen

.htanything.Was was auch immer

Als Server breit sind alle Dateien, die starten, von externen Benutzern nicht lesbar {Deshalb ist Htaccess immer .htaccess}

Persönlich Ich speichere nur Konfigurationsdateien und Funktionsbibliotheks außerhalb des Dokumentstammes. Verstehen Sie jedoch, dass einige Konnots immer die .htnaming-Konvention auf ihnen verwenden. ein solcher Server

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top