Eu tenho um arquivo na minha raiz do Magento que require_once 'app/Mage.php';
me permite acessar Mage::getStoreConfig
variáveis do sistema.
Isso causa um risco à segurança? Devo colocá-lo em outra pasta?
Este é o meu arquivo, /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
estava usandoPara adicionar um pouco de paranóia adicional, você pode alterar a instrução require para especificar o
app/Mage.php
arquivo usando um caminho absoluto do sistema de arquivos, para que o caminho de inclusão do PHP não seja usado:Ou, nas versões PHP abaixo de 5.3:
O vetor de ataque muito teórico é que um invasor é capaz de manipular de alguma forma o caminho de inclusão do PHP e, portanto, é capaz de incluir
app/Mage.php
arquivos arbitrários .fonte
Se você é o único que acessará esse arquivo, por que não restringi-
if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')
lo por IP ? Eu já vi muitos desenvolvedores de magento que mantêm esse tipo de arquivos na raiz do Magento e fazem coisas relacionadas a administradores sem nenhum tipo de autenticação. Por exemplo, eu fui a um dos meus amigos no site Magento e adivinhei o arquivohttp://example.com/test.php
e isso me deu uma saídaMail sent!
lol. Os desenvolvedores também escrevem coisas sensíveis para alterar algumas tabelas do banco de dados em scripts independentes, pois desejam fazê-lo de vez em quando e não desejam criar um módulo para isso.Eu sugeriria qualquer um que criar esse tipo de arquivo autônomo, exigido apenas a eles, apenas restrinja-o por IP e, assim que seu trabalho terminar nesse arquivo, coloque-o
exit;
em cima do arquivo. Apenas meus 2 centavos.fonte
Creed Bratton, sempre será arriscado chamar esse tipo de código. Desde que você chama Mage.php do twitter.php, você precisa
put proper file permission for twitter.php
. Ou qualquer outro usuário pode reescrever seu código do twitter.php.Other wise it does not create any issue.
fonte