У меня есть файл в корне Magento, который require_once 'app/Mage.php';
дает мне доступ к Mage::getStoreConfig
системным переменным.
Это создает угрозу безопасности? Должен ли я поместить его в другую папку?
Это мой файл, /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
использовал этоЧтобы добавить немного дополнительной паранойи, вы можете изменить оператор require, чтобы указать
app/Mage.php
файл, используя абсолютный путь к файловой системе, поэтому PHP-путь включения не используется:Или в версиях PHP ниже 5.3:
Очень теоретический вектор атаки в том , что злоумышленник может каким - то образом манипулировать PHP включают путь и , таким образом , может включать в себя arbitraty
app/Mage.php
файлы.источник
Если вы единственный, кто имеет доступ к этому файлу, почему бы не ограничить
if($_SERVER['REMOTE_ADDR']=='your.ip.address.here')
его IP ? Я видел много разработчиков magento, которые хранят файлы такого типа в корне Magento и делают связанные с администратором вещи без какой-либо аутентификации. Например, я зашел на один из моих друзей на сайте Magento и только что угадал файл,http://example.com/test.php
и он дал мне выводMail sent!
lol. Разработчики также пишут важные вещи, чтобы изменить некоторые таблицы базы данных в автономных скриптах, поскольку они хотят делать это время от времени, и не хотят создавать модуль для этого.Я бы посоветовал любому, кто создает такой тип автономных файлов, который требуется только им, просто ограничьте его по IP, и как только ваша работа над этим файлом закончится, просто поместите его
exit;
поверх файла. Просто мои 2 цента.источник
Creed Bratton, всегда будет рискованно называть этот тип кода. Поскольку вы звоните Mage.php из twitter.php, вам нужно
put proper file permission for twitter.php
. Или любой другой пользователь может переписать ваш код в twitter.php.Other wise it does not create any issue.
источник