J'ai un fichier dans ma racine Magento qui require_once 'app/Mage.php';
me donne accès aux Mage::getStoreConfig
variables système.
Cela pose-t-il un risque pour la sécurité? Dois-je le placer dans un autre dossier?
Voici mon fichier, /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
cela l'utilisaitPour ajouter un peu de paranoïa supplémentaire, vous pouvez modifier l'instruction require pour spécifier le
app/Mage.php
fichier à l'aide d'un chemin d'accès absolu au système de fichiers, afin que le chemin d'inclusion PHP ne soit pas utilisé:Ou, sur les versions PHP inférieures à 5.3:
Le vecteur d'attaque très théorique étant qu'un attaquant est capable de manipuler le chemin d'inclusion PHP d'une manière ou d'une autre et est donc capable d'inclure des
app/Mage.php
fichiers arbitraires .la source
Si vous êtes le seul à accéder à ce fichier, pourquoi ne pas le restreindre IP
if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')
? J'ai vu de nombreux développeurs de magento qui conservent ce type de fichiers à la racine Magento et effectuent des tâches liées à l'administration sans aucune sorte d'authentification. Par exemple, je suis allé sur le site Web de l'un de mes amis Magento et j'ai juste deviné le fichierhttp://example.com/test.php
et cela m'a donné une sortieMail sent!
lol. Les développeurs écrivent également des éléments sensibles pour modifier certaines tables de base de données dans des scripts autonomes comme ils veulent le faire de temps en temps, et ne veulent pas créer de module pour cela.Je suggérerais à quiconque crée ce type de fichiers autonomes qui ne leur est nécessaire que de le restreindre IP, et une fois que votre travail est terminé sur ce fichier, mettez simplement un
exit;
sur le dessus du fichier. Juste mes 2 cents.la source
Creed Bratton, Il sera toujours risqué d'appeler ce type de code. Puisque vous appelez Mage.php depuis twitter.php, vous devez le faire
put proper file permission for twitter.php
. Ou bien tout autre utilisateur peut réécrire votre code de twitter.php.Other wise it does not create any issue.
la source