Tengo un archivo en mi raíz de Magento que require_once 'app/Mage.php';
me da acceso a las Mage::getStoreConfig
variables del sistema.
¿Esto causa un riesgo de seguridad? ¿Debo colocarlo en otra carpeta?
Este es mi archivo, /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
estaba usandoPara agregar un poco de paranoia adicional, puede cambiar la instrucción require para especificar el
app/Mage.php
archivo usando una ruta absoluta del sistema de archivos, por lo que no se usa la ruta de inclusión PHP:O, en versiones de PHP inferiores a 5.3:
El vector de ataque muy teórico es que un atacante puede manipular de alguna manera la ruta de inclusión de PHP y, por lo tanto, puede incluir
app/Mage.php
archivos arbitrarios .fuente
Si usted es el único que accederá a este archivo, ¿por qué no restringirlo por IP
if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')
? He visto a muchos desarrolladores de magento que mantienen ese tipo de archivos en la raíz de Magento y hacen cosas relacionadas con el administrador sin ningún tipo de autenticación. Por ejemplo, fui a uno de mis amigos del sitio web de Magento y simplemente adiviné el archivohttp://example.com/test.php
y me dio salidaMail sent!
jajaja. Los desarrolladores también escriben cosas confidenciales para cambiar algunas tablas de la base de datos en scripts independientes, ya que quieren hacerlo de vez en cuando y no quieren crear un módulo para eso.Sugeriría a cualquiera que cree ese tipo de archivos independientes que solo se les requiere, solo restrinja la IP, y una vez que su trabajo haya terminado en ese archivo, simplemente coloque una
exit;
encima del archivo. Solo mis 2 centavos.fuente
Credo Bratton, siempre será arriesgado llamar a este tipo de código. Como llama a Mage.php desde twitter.php, debe hacerlo
put proper file permission for twitter.php
. O bien, cualquier otro usuario puede reescribir su código de twitter.php.Other wise it does not create any issue.
fuente