Jump to content
  • 0

Создание исполняемого PHP файла через PHP


Jey Val Star
 Share

Question

Здравствуйте, как можно создать PHP файл, но при этом чтобы он был исполняемым - т.е. обрабатывал какие-то данные? А затем можно было-бы его редактировать.

К примеру есть JOOMLA у нее есть configuration.php. А через админку все настройки сохраняются в этот конфиг.

Вопрос: как?

Link to comment
Share on other sites

Recommended Posts

  • 0

1) в самой админке жумлы есть возможность настроить файл конфигурации на запись, т.е. для того что бы его изменять, нужно дать соотв. права.

2) с помощью ф-ций для работы с файлами, в php можно открывать для чтения файл конфига, а потом перезаписывать его.

3) можете взять в качестве примера часть кода вот отсюда: http://htmlforum.ru/index.php?showtopic=20525

P.S. но я не советую вам воплощать вашу идею, из соображений безопасности;)

Link to comment
Share on other sites

  • 0

 

Вопрос: как?

Никак. Так делать ни в коем случае нельзя. То есть это возможно в принципе, но делать кетегорически запрещается.

 

Запрещается в планах безопасности?

Link to comment
Share on other sites

  • 0

Чет я не допер почему нельзя, и что значит исполняемый *.php и рассматриваемый пример configuration.php

Т.С. хочет иметь возможность редактировать конфиг джумлы где-то из админки.

Link to comment
Share on other sites

  • 0

 

Чет я не допер почему нельзя, и что значит исполняемый *.php и рассматриваемый пример configuration.php

Т.С. хочет иметь возможность редактировать конфиг джумлы где-то из админки.

 

Не совсем, меня интересует вопрос редактирования php файла, но что бы потом он был исполняемый (т.е. не просто текст, а код к примеру переменные содержащие настройки) configuration.php в joomla как пример.

Link to comment
Share on other sites

  • 0
Не совсем, меня интересует вопрос редактирования php файла, но что бы потом он был исполняемый (т.е. не просто текст, а код к примеру переменные содержащие настройки) configuration.php в joomla как пример.

да я то понял с самого начала, и выше мой пост с ссылкой тому подтверждение.

Link to comment
Share on other sites

  • 0
но что бы потом он был исполняемый (т.е. не просто текст, а код к примеру переменные содержащие настройки

возможно, вы имеете ввиду что-то вроде http://php.net/manual/ru/function.var-export.php Файл, например, с массивом инклюдится как обычный и становится доступен в клиентском коде.

Как отмечено выше, здесь множество уязвимостей возможных: на этапе формирования данных выхода, выбора файла, записи, выбора файла чтения, инклюдинга, обработки данных и т.п.

Link to comment
Share on other sites

  • 0

не. все правильно.  Вообще естественно можно...  у меня уже есть ряд кодогенераторов....

Но в случае с конфигом - лучше не нужно.... он должен быть скрыт от посторонних глаз.... Если сломают админку и доступ к бд утащат.... там таких дел могут натворить...

Link to comment
Share on other sites

  • 0

логично, ибо настройки типа бд редактируются редко. Но даже если взять настройку количества лент и разместить её  предложенным в теме способом, то можно иньецировать туда код и переинклюдить файл в другой уязвимый - например, настройки в папке config и проверка идет на файл только из этой папки. И если в области видимости того кода есть настройки бд, то можно или распечатать их\увести\подменить и т.п извраты. Здесь широкие возможности)) Похожий принцип напоминает атаку через лог файл. Поэтому требования к безопасности тут огромные.

Edited by bryknyk
Link to comment
Share on other sites

  • 0

мне кажется тема про то, чтобы (не зависимо от движка сайта):

есть скрипт по адресу, например /edit.php, в котором скажем есть textarea, в которое можно загрузить содержимое другого файла например /contact.php и отредактировав как нужно (не только верстку, но и php) сохранить.

 

Возможно я ошибаюсь?..

Link to comment
Share on other sites

  • 0

мне кажется тема про то, чтобы (не зависимо от движка сайта):

есть скрипт по адресу, например /edit.php, в котором скажем есть textarea, в которое можно загрузить содержимое другого файла например /contact.php и отредактировав как нужно (не только верстку, но и php) сохранить.

 

Возможно я ошибаюсь?..

Нет, все верно
Link to comment
Share on other sites

  • 0

ну тогда тут все зависит от подхода программирования:

как - я можно сказать в общих чертах вам уже ответил :), нюансы можно обсудить по ходу создания такого скрипта

но как уже сказали выше, для подобного скрипта не стоит открывать доступ обычным пользователям - только администраторам

Link to comment
Share on other sites

  • 0

Нет, все верно

что вы голову морочите всем? что не верно то? он все правильно написал, это вы не можете понять, либо сказать правильно.

2rus Он согласился мне кажется с моим предположением

Link to comment
Share on other sites

  • 0

2rus Он согласился мне кажется с моим предположением

тьфу ты блин :)

глазки балуются походу... автор, примите мои извинения, бегло прочел ваш пост... :)

не страшно, я не обиделся.)))

По поводу доступа к бд - да, наверное вообще скрыть от посторонних глаз посильней.

я имею в виду такие настройки как "включен/выключен сайт", "редактор", "кешировать или не кешировать".

Или лучше использовать ini файлы?

И я так понимаю при изменении настроек файл прийдется весь переписывать? А можно только одну строку файла переписать?

Link to comment
Share on other sites

  • 0

ini мне кажется будет более хорошим вариантом, чем php

А почему?

Я читал сравнение скорости, на хабре, между парсингом iniи инклудом php. Вроде ini быстрей...

Или есть еще плюсы?

Link to comment
Share on other sites

  • 0
А можно только одну строку файла переписать?

если я немного представляю вообще, о чем тема т.к. понятия достаточно расплывчаты, то имхо, вы идете неправильным путем. Вы привязываетесь к конкретным технологиям, а первые вопросы, которые могут возникать -

1. Как передавать настройки  - кому и когда, потому при расслоении всегда что-то передается и устанавливается. Если идет иерархия вызовов, то как доставить их на другой конец. не дергать же файл по сто раз. и велика вероятность на другом конце получить не то.

2. Как переинициализировать приложение при изменении настроек. например, заполнена форма, настройка изменяется и все перегружается - данные утеряны.

3. Как придумать строгие правила проверки и сопоставления ключей, т.к. их много и легко можно попутать.

4. Как подстраховаться от их утери. При первом столкновении с данной технологии мой конфигуратор при о.у. нещадно херил весь файл xml, делая его пустым, был сюрприз

5. Оставить место, чтобы навесить другие форматы и т.п.

6. удобно распечатывать для контроля когда тесты не писаны.

7. безопасность и т.п.

например, окажется, что настройка должна приходить из командной строки вообще.

а вот если 100500 ключей в ключ:значение можете легко получить кашу, а при xml например, удобнее что-то с чем-то легко связывать и иньецировать классы друг в друга и т.п., иерархия также. А вы быстрее, не быстрее - ну зачем так сразу на реализацию. Это целый слой приложения. А еще околотекстовые форматы при о.у. могут распечатать в браузер все настройки при прямом доступе к файлу)

Edited by bryknyk
Link to comment
Share on other sites

  • 0
Вообще вопрос о том как сохранить из браузера в файл php в виде работающего кода php (как пример - configuration.php joomla)

ничего, кому нибудь  лишняя инфа пригодится. Тему много кто читает и по разному относится к информации)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy