include, ini-файлы и безопасность - help, pls

Ответить
Аватара пользователя
mar

include, ini-файлы и безопасность - help, pls

Сообщение mar »

вопрос: на PHP

- исполбзуя include, подключаю какой-нибудь ini- файл с переменными.

- если не хочу значений по умолчанию, вызываю свой script.php?ini=qq.ini (т.е. передаю имя файла)

Есть ли возможность сделать это безопасно? (пока получается, что ежели кто-нибудь загонит какой-нибудь файл с включением php и вызовет такой скрипт со ссылкой на него, то будет выполнен любой произвольный код в этот файл помещенный???



[s]Исправлено: mar, 18:40 15-03-2003[/s]
Аватара пользователя
leprikon

Re: include, ini-файлы и безопасность - help, pls

Сообщение leprikon »

mar



почему именно так передаешь qq.ini ?



не проще ли пойти путем include('qq.ini') ?

или просто _подставить_ в нужном месте кусок из qq

requery('qq.ini') ?



Чтобы не могли просмотреть содержимое или попытаться "выполнить" , можно сделать так :





Order allow,deny

Deny from all
Аватара пользователя
mar

Re: include, ini-файлы и безопасность - help, pls

Сообщение mar »

leprikon

штука в том, что этот скрипт стоит у заказчика, поэтому:

- я не могу лезть в конфигурацию его сервера

- у него должна быть возможность менять кое-какие детали получающихся форм => один и тот же скрипт, получая ссылки на разные ini файлы, includ-ает их в себя и генерит разные по виду и количеству полей формы.

- сколько и какие ini-файлы будет делать заказчик, - я (и он пока Изображение) - не знаю

Поэтому я не могу заранее знать название файла. Это их дело.



В общем, пока я сделала так (в том числе и с помощью обсуждений на
phpclub
и
xpoint
):

1) у ini - файлов расширение php

2) все они будут лежать в отдеьном каталоге

3) получаемое значение переменной обрабатывается basename()

4) к полученному после этого значению спереди принудительно добавляется имя этого каталога

5) если файл не существует, открываем default-ный ini-файл



пока это все выглядит так:

$work="qq/"; //рабочий каталог со всеми дополнительными включаемыми файлами

$defaultini="qq.php"; // вводим значения по умолчанию

// если нет вызова с именем ini-файла, ini - по-умолчанию:

if (!@$ini)$ini=$defaultini;

else $ini=$basename($ini);



// добавляем в начало имя каталога

//=> делаем бессмыссленным взлом

$ini=$work. $ini;



if (!file_exists($ini)) {

include ($defaultini); *// включаем по умолчанию

} else {

include ($ini); *// включаем из ini-файла

}



//////////////////////////////////////////////

а вот, собственно, пример этого злосчастного ini



//////////////

ну, и, соответственно, файл mail1.php, в котором будут отображаться $h и $pref, а дальше какое-то количество текстовых полей (в цикле - заказчик может менять переменную цикла) *







[s]Исправлено: mar, 19:27 16-03-2003[/s]
Аватара пользователя
leprikon

Re: include, ini-файлы и безопасность - help, pls

Сообщение leprikon »

mar



тоже выход из положения Изображение



тут можно несколькими способами решить, но все они будут рядом с твоим нынешним вариантом Изображение
Аватара пользователя
leprikon

Re: include, ini-файлы и безопасность - help, pls

Сообщение leprikon »

mar

Если делать на более серьезном уровне, то можна через БД инклудить нужные темплейты, точнее вывод в выгребеном из БД темплейте Изображение соответствено их таким же образом и менять.
Ответить

Вернуться в «Вебмастеру»