|
|
|
| Добрый день, поздравляю всех с праздником "Днём программиста!"
Решил вынести все определенные константы в отдельный ini файл и сделать редактор их значений для пользователя CMS. Вопрос следующий:
Правильно ли я поступаю с точки зрения безопасности делая это так
<?php
$ini_array = parse_ini_file("../inc/config.ini",false);
foreach($ini_array as $key => $value){
$code="define('".$key."', '".$value."');";
echo $code."<br>";
eval($code);
}
?>
|
или лучше сделать это каким то другим способом. | |
|
|
|
|
 91 байт |
|
|
для: DIM@
(13.09.2009 в 14:28)
| | Попробуйте скормить своему скрипту файл, который я прикрепил. Надеюсь, вопрос о безопасности отпадёт сам собой. | |
|
|
|
|
|
|
|
для: Саня
(13.09.2009 в 14:40)
| | А что поменяется, если я это же пропишу в конфигурационном файле?
Хорошо, как сделать так, что бы пользователя CMSки не пуская на ftpшник разрешить менять определение некоторых констант?
Да и можно же закавычить строку перед выполнением присвоения
<?$code="define('".$key."', '".addslashes($value)."');";?>
|
| |
|
|
|
|
|
|
|
для: DIM@
(13.09.2009 в 14:54)
| | Тут eval вообще не нужен. Вполне допустимо написание define($key, $value); | |
|
|
|
|
|
|
|
для: Саня
(13.09.2009 в 14:59)
| | Не проходит, может какой нибудь параметр в php.ini запрещает это? | |
|
|
|
|
|
|
|
для: DIM@
(13.09.2009 в 15:07)
| | А что пишет? Вообще, это, как правило, не запрещают (а если запрещают, то вместе с eval())... Интерпретатор выводит какое-то предупреждение? | |
|
|
|
|
|
|
|
для: cheops
(13.09.2009 в 15:20)
| | Странным образом все заработало :) | |
|
|
|