Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Определение констант из ini файла
 
 автор: DIM@   (13.09.2009 в 14:28)   письмо автору
 
 

Добрый день, поздравляю всех с праздником "Днём программиста!"

Решил вынести все определенные константы в отдельный 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);
}
?>


или лучше сделать это каким то другим способом.

  Ответить  
 
 автор: Саня   (13.09.2009 в 14:40)   письмо автору
91 байт
 
   для: DIM@   (13.09.2009 в 14:28)
 

Попробуйте скормить своему скрипту файл, который я прикрепил. Надеюсь, вопрос о безопасности отпадёт сам собой.

  Ответить  
 
 автор: DIM@   (13.09.2009 в 14:54)   письмо автору
 
   для: Саня   (13.09.2009 в 14:40)
 

А что поменяется, если я это же пропишу в конфигурационном файле?

Хорошо, как сделать так, что бы пользователя CMSки не пуская на ftpшник разрешить менять определение некоторых констант?

Да и можно же закавычить строку перед выполнением присвоения

<?$code="define('".$key."', '".addslashes($value)."');";?>

  Ответить  
 
 автор: Саня   (13.09.2009 в 14:59)   письмо автору
 
   для: DIM@   (13.09.2009 в 14:54)
 

Тут eval вообще не нужен. Вполне допустимо написание define($key, $value);

  Ответить  
 
 автор: DIM@   (13.09.2009 в 15:07)   письмо автору
 
   для: Саня   (13.09.2009 в 14:59)
 

Не проходит, может какой нибудь параметр в php.ini запрещает это?

  Ответить  
 
 автор: cheops   (13.09.2009 в 15:20)   письмо автору
 
   для: DIM@   (13.09.2009 в 15:07)
 

А что пишет? Вообще, это, как правило, не запрещают (а если запрещают, то вместе с eval())... Интерпретатор выводит какое-то предупреждение?

  Ответить  
 
 автор: DIM@   (13.09.2009 в 15:58)   письмо автору
 
   для: cheops   (13.09.2009 в 15:20)
 

Странным образом все заработало :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования