![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Plavozont |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Решил сделать настроичный файл в папке со своим сайтом, и хотелось бы чтобы только я мог его читать. (Читаю я его php скриптом.)
php код в настроичном файле заключённый в <? ?> не читается, и то что печатается этим кодом тоже не прочитать, так что защитить его содержимое проверкой сессии не получится. Да и редактировать такой файл будет нереально. Простой текст в файле читается, но если этот файл открыть по url в браузере его тоже можно приспокойно прочитать. Как сделать чтобы он доступен был только из php. (редактировать через php мне тоже его нужно.) --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Plavozont, заведи дополнительную "папку со своим сайтом" выше каталога public_html (или www или как там на сервере?) тогда снаружи никто не сможет добраться до файла. только посредством php..
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Plavozont |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
А если он будет в этой же папке то никак ?
--------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
Пример покажи, что у тебя не читается.
|
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Как вариант Deny from all ?
-------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
СОхрани этот файл как .php и не выводи никаких данных, в чем проблема то?
А вставляй через include Нужно редактировать через сайт? тогда опять же сохраняй как .php и инклудь Это сообщение отредактировал(а) Muerto - 21.7.2010, 20:23 |
|||
|
||||
| Plavozont |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Смысл в том чтобы клиент не мог получить доступ к файлу на сервере, а php выполняемый на сервере мог брать файл на сервере и делать с ним что хочешь. Чтобы клиент не мог сним ничего сделать достаточно запретить публичному пользователю чтение запись и выполнение файла. Но тогда и php отказывается с ним что либо делать, но оно и понятно, так ведь кто угодно сможет написать свой php код и отредактировать мой файл. Тогда возникает желание запретить доступ к файлу неавторизованному пользователю, а мне разрешить, но как такое сделать ? Или может быть сделать как-то чтобы php который находится в этой же папке мог его редактировать а всякие левые - нет.
Хотя по большому счёту если публика сможет файл прочитать - ничего страшного, главное чтоб отредактировать мог только php код, который выполняется только если авторизироваться.
textfile.txt: Hello World php:code $fs=filesize('textfile.txt'); $handle=fopen('textfile.txt', 'r'); $contents = fread($handle, $fs); fclose($handle); print $contents; //Hello World /----------------------------------------/ textfile.txt: <? print 'Hello World'; ?> php:code $fs=filesize('textfile.txt'); $handle=fopen('textfile.txt', 'r'); $contents = fread($handle, $fs); fclose($handle); print $contents; //...Пусто
Вариант чудесный был бы если можно было из php этот динай отменить отредактировать файл и тут же назад установить. А просто разрешить какому-то одному IP доступ к файлу не пойдёт, сайт тиражируется и администраторы меняются...
Было бы чудесно но как отредактировать php который ты заинклудил ??? --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
||||||
|
|||||||
| Just123 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 9.12.2007 Где: localhost Репутация: нет Всего: нет |
Может быть поможет что-то вроде этого?
P.S. Не правильно сначало понял, извиняюсь. Это сообщение отредактировал(а) Just123 - 22.7.2010, 09:56 |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
||||
|
||||
| overmet |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 15.8.2009 Где: Gomel Репутация: -2 Всего: -2 |
надо попробовать,
а вдруг fread сработает, copy и curl не сработало |
||||
|
|||||
| Plavozont |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Клиент как javascript, как web-браузер, как любая клиентская программа, чтобы к файлу пролезть можно было только со стороны сервера и никак иначе. --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
| Noviy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
По поводу javascript, можешь не переживать. Доступ к файлу блокирурй с помощью .htaccess, как подсказал s0lman.
|
|||
|
||||
| bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: 4 Всего: 6 |
В таких случаях, когда меняются админы, создают в базе таблицу, в неё записывают IP админов и их права.
Далее определенный скрипт проверяет эти права админа, и перенаправляет на нужную страницу с нужными правами и возможностями. Все эти проверки можно так же сделать с помощью mod_rewrite. |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Plavozont, у тебя какие-то непонятки. То ты говоришь что тебе надо запретить доступ с клиента.
Тот ты говоришь
И каким по-твоему образом его код попадёт к тебе на сервер? Невозможно ответить на твой вопрос. Запретить доступ к файлу можно многими способами, начиная от mod_rewrite и заканчивая игрой с правами на стороне сервера. |
|||
|
||||
| Plavozont |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
в смысле на своём сервере.
в смысле файл с настройками, на моём сервере.
Оу, а можно как раз парочку таких примеров посмотреть, потому что я вапще в вопросах доступа не бум-бум, вот и полагаю наверно ошибочно что php-код на чьём-то сервере может что угодно сделать с файлом на моём сервере... А вообще я делаю наверно глупость, но почему-то сделать её очень хочется. Я делаю приложение которое можно будет настраивать под разные задачи, типа CMS (Content Managment System). И идея такая что человек записывает к себе на сервер в папочку моё приложение (нулёвое) и открывает его в своём браузере. Вводит секретный администраторский логин с паролем, потом php смотрит существует или нет база данных под это приложение и если нет автоматом её создаёт, задав ей временное имя, которое в программу зашито, и таблицу с учётной записью администратора. Потом происходит переход в настроичную систему в которой первым делом предлагается задать имя базы данных чтобы переименовать временную базу в это имя. Тут и возникает интересный вопрос - как сохранить введённое имя базы данных ? В базе данных ведь его не сохранишь. Если сохранить его в файл, возникает загвоздка - файл у которого запрещено публичное редактирование php отказывается редактировать. Вот мне и нужно чтобы только человек который зашёл под администратором мог отредактировать этот файл и записать туда имя базы данных. Я согласен никакой проблемы нет зайти в исходник и вписать туда это имя, но почему бы не сделать это красивенько через интерфейс, если это возможно! Это сообщение отредактировал(а) Plavozont - 24.7.2010, 09:09 --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
||||||
|
|||||||
| SoWa |
|
||||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Если человека так заботит проблема сокрытия какой-то текстовой информации в некоем файле, то почему бы не сделать вот так:
вместо того, чтобы эту информацию печатать - помести её в функцию, которая будет возвращать тебе эту информацию. И вызывай эту функцию из того файла, куда ты подключаешь защищаемый. Пример, как у тебя:
Пример сокрытия:
-------------------- Всем добра |
||||
|
|||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
||||
|
||||
| Plavozont |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Да... вы меня не поняли :(
Информация должна быть редактируема через рhp код....
Php код он ясень пень не достанет, а вот содержимое текстового файла(открытого для публичного редактирования к тому-же(по другому он у меня вообще никак не редактируется)) - сколько угодно Можно вообще сделать просто - создать в папке с сайтом файл имя которого равняется имени базы данных, но опять же, чтобы создать файл, у папки в которой его создаёшь должно стоять публичное право на запись. Вот скажите, это так и должно быть ? Только через публичные права на сайте можно что-то создавать/удалять/редактировать ? --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
||||
|
|||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Plavozont,
Чувак, снимись с ручника. Тебе уже по десятому разу объясняют! 1) Кто тебе мешает из PHP кода редактировать другой PHP код? Нафига делать текстовый файл с настройками, а потом бояться что его сопрут? Делай PHP файл с настройками и редактируй его! Извне его достать нельзя ---------> Вот и нет проблемы! 2) На публичное редактирование тебе плевать c колокольни. С другого сервера НИКАК нельзя отредактировать файл на твоем сервере, даже если на него стоят права 0777. Разве что ты сам их пригласишь, предварительно выдав пароли на ssh или ftp. Если же у тебя на ТВОЕМ ЖЕ сервере в соседней папке рядом живут чуваки, которые могут технически украсть твой файл - я тебе сочувствую и ты НИКАК не решишь эту проблему, кроме как положить все в базу. Но даже в таком случае шанс кражи минимален, так как они не знают твою структуру папок и не знают, где у тебя лежит этот файл. |
|||
|
||||
| Plavozont |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Аммм... так яш уже спрашивал: "А КАК??"... извините... --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Для примера - разместить у себя на сервере во такой скрипт.
Если ввести в адресной строке броузера адрес этого скрипта и побеспокоится, чтобы файл config.php был открыт для записи (установить ему правильные атрибуты). То скрипт будет способен редактировать этот файл. А вот чтобы злые люди не запустили этот скрипт и не заредактировали все что захотят, нужно сюда прикрутить систему авторизации... Но это уже совсем другая история... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
так же, как и текстовые файл. естественно, надо следить, чтоб соблюдался синтаксис формируемого РНР файла. следи за моими руками:
это велосипед, не лишенный недостатков. лучше использовать var_export
|
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |