Ich habe eine Datei in meinem Magento-Stammverzeichnis, require_once 'app/Mage.php';
mit der ich auf Mage::getStoreConfig
Systemvariablen zugreifen kann.
Verursacht dies ein Sicherheitsrisiko? Soll ich es in einem anderen Ordner ablegen?
Dies ist meine Datei /twitter.php :
<?php
require_once 'app/Mage.php';
Mage::app();
$consumer_key = Mage::getStoreConfig("Social/twitterapi/consumer_key");
$consumer_secret = Mage::getStoreConfig("Social/twitterapi/consumer_secret");
$oauth_access_token = Mage::getStoreConfig("Social/twitterapi/access_token");
$oauth_access_token_secret = Mage::getStoreConfig("Social/twitterapi/access_token_secret");
index.php
es verwendet wurdeUm ein wenig zusätzliche Paranoia hinzuzufügen, können Sie die require-Anweisung ändern, um die
app/Mage.php
Datei unter Verwendung eines absoluten Dateisystempfads anzugeben , sodass der PHP-Include-Pfad nicht verwendet wird:Oder auf PHP-Versionen unter 5.3:
Der sehr theoretische Angriffsvektor ist, dass ein Angreifer den PHP-Include-Pfad irgendwie manipulieren und somit Arbitraty-
app/Mage.php
Dateien einbinden kann.quelle
Wenn Sie der einzige sind, der auf diese Datei zugreift, warum sollten Sie sie nicht auf IP-Adressen beschränken
if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')
? Ich habe viele Magento-Entwickler gesehen, die solche Dateitypen im Magento-Stammverzeichnis behalten und admin-bezogene Dinge ohne jegliche Authentifizierung ausführen. Ich habe zum Beispiel eine der Magento-Websites meines Freundes besucht und nur die Datei erratenhttp://example.com/test.php
und es gab mir die AusgabeMail sent!
lol. Entwickler schreiben auch vertrauliche Dinge, um einige Datenbanktabellen in eigenständigen Skripten zu ändern, da sie dies gelegentlich tun möchten und dafür kein Modul erstellen möchten.Ich würde jedem empfehlen, der solche eigenständigen Dateien erstellt, die nur für ihn erforderlich sind. Beschränken Sie die IP-Adresse, und fügen Sie nach Abschluss der Arbeit an dieser Datei eine
exit;
Datei hinzu. Nur meine 2 Cent.quelle
Creed Bratton, es wird immer riskant sein, diese Art von Code zu nennen. Da Sie Mage.php von twitter.php aus aufrufen, müssen Sie dies tun
put proper file permission for twitter.php
. Oder jeder andere Benutzer kann Ihren Code von twitter.php umschreiben.Other wise it does not create any issue.
quelle