Здравствуйте. В общем требуется закрыть доступ к содержимому файла из своих же скриптов, но не для всех. Для того чтоб объяснить суть вопроса давайте допустим что у нас есть скрипты: config.php, main.php, module.php которые лежат в одной папке. config.php Код (Text): Hello, World! main.php Код (Text): <?php file_get_contents(dirname(__FILE__) . '/config.php'); include 'module.php'; module.php Код (Text): <?php file_get_contents(dirname(__FILE__) . '/config.php'); Соответственно возможно-ли создать условия при которых во время main.php все спокойно сработает, а вот при чтении файла в module.php возникает ошибка доступа или другая фига??? Учитывая что main.php запускается при обычном http запросе на наш сайт. У меня только одна догадка: если скрипты config.php и main.php создам я (т.е. буду их владельцем), а скрипт module.php создаст кто-то другой и при этом у скрипта config.php выставить права только чтение владельцем, но я не могу это пока еще проверить. Как вы думаете поможет такой вариант? А если нет, то есть-ли еще какие-нибудь?
Вопрос в том что когда апач запускает скрипты не работают-ли они все от имени одного и того же пользователя? Впрочем я сегодня встал и подумал что занимаюсь ерундой. Проще получив полный доступ к серваку просто запретить ее, а вместо нее даже нужно использовать инклуд и курл. С инклудом проще, там можно использовать трюк с установкой переменной, ее проверкой и ансетом.
так им надо будет работать над одной системой, понятно что они получат разные фтп аккаунты, но у них также будут разные бд аккаунты и соответственно доступ к разным таблицам, требуется чтобы один прогер не смог узнать данные для подключения к бд другого прогера, которые хочешь не хочешь, но будут где-то в скриптах прописаны.
разумеется у нас есть тестовый сервер с тестовой базой где нет "секретных" данных, но что мешает оставить в скрипте код который по курлу передаст данные о подключении к бд или выведет его при определенном гет параметре который я не замечу и перенесу на продактшн. может это все и паранойя конечно, но как говорится береженого бог бережет, к черту эту функцию тем более что это просто упрощенный функционал курла.
Просто используй софт для организации хостинга или vds, например https://www.ispsystem.ru/software/vmmanager
это сильно круто к тому же это все равно не решит проблему ведь скрипты запущенные по веб запросу все-равно будут друг для друга своими и читай не хочу контент любого скрипта. тут хитрость в том что нужно скрыть инфу от прогера который работает рядом с тобой над тем же проектом.
а есть алгоритм по которому можно понять какой url за каким пользователем закреплён? Можно доступ по ip открыть только для одного по url.
чего ты хочешь-то? =) данные у них не настоящие, а закладку в код заложить могут, вытащить твои пароли наружу тоже могут.
В общем я предлагаю тему закрыть следующим выводом file_get_contents() в отличае от инклуда никак не контрится в среде разработчиков, вот как-то так
отлично, какой смысл тогда класть на сервак файлы, которые нельзя прочитать? Вы сказали, что должны быть файлы, и к ним из скрипта происходят обращения. Бредом каким-то занимаетесь. Если вам надо держать разные данные доступными для разных разрабов, то не надо вообще пускать их на один сервер. Все работают у себя на локалках счастливо всегда. На сервак выкладывается стабильная проверенная сборка из системы версий. При этом разрабам не требуется вообще лазить куда-то дальше своего компа.
да, в надежде что можно найти способ закрыть чтение скриптов всеми скриптами подряд, но его как оказалось нет, значит функция запрещается, а там где использовалась заменяется на инклуд и курл. локалки и проверенная версия это все конечно хорошо, но мне нужна помощь, а не дополнительная нагрузка
идиотизмом не страдайте. =) что мешает человеку сделать такой же инклуд или курл? вы же оставили возможность читать файл. какая разница как именно? Добавлено спустя 34 секунды: вам нужны админ и тилид и понимание вообще минимальное хотя бы того, как устроен компьютер.
а вам видимо нужен трон берем код из примера config.php Код (Text): <?php if (!isset($code) || $code != 'secret_code') exit('No'); ?> Hello, Word! main.php Код (Text): <?php $code = 'secret_code'; include 'config.php'; unset($code); include 'module.php'; module.php Код (Text): <?php include 'config.php'; самым умным человеком себя не считайте =)
Какой во всем в этом смысл? Если к определенным вещам не должно быть доступа, его просто не должно быть. Если он есть, в том или ином виде, то он есть. /кэп_офф. з.ы. напомнило случай, как один хм... безопасник при вводе пароля требовал что бы все вышли из помещения. Его не смущал факт того, что всем глубоко плевать на его сверхважные данные )
Самым и не считаю. Добавлено спустя 1 минуту 12 секунд: это не ответ на вопрос. Вопрос всё тот же, что мешает человеку инклюдить ЛЮБОЙ файл? =) Добавлено спустя 2 минуты 42 секунды: вы похоже не понимаете чего-то в последовательности работы скриптов. Ну да ладно. Дело ваше. Просто обязан сообщить вам, раз уж вы тут, а я тут, что ваша защита не работает для тех, кто может скрипты вам на хостинг пихать. Не работает в принципе. То, что вы показали в примере это защита от внешних запросов, а у вас была задача защититься от ваших же разрабов, причем не от всех. И вы закрыли функцию file_get_contents() которая по сути заменяется кучей других функций, включая инклуд, от которого уже так легко не отделаться так или иначе. Ну удачи.