на моем сайте есть PHP-файлы, которые я включаю в другие PHP-файлы... они выполняют разные задачи, например, подключаются к моей базе данных и выполняют другие функции... теперь я знаю заданный путь к моим файлам... поэтому я могу указать путь, например
http://www.mysite.com/myfiles/
это выдаст список файлов в этом каталоге.
Я знаю, что для того, чтобы избежать перечисления каталогов, мне придется ввести имя файла index.html
ИЛИ index.php
сделать это вместо перечисления каталогов.
но я все равно знаю путь к файлу... http://www.mysite.com/myfiles/con.php
при этом код выполняется, но вы можете видеть исходный OFFCourse, потому что это клиентская сторона...
НО есть ли способ получить этот PHP-файл с его исходным кодом, когда кто-то знает путь... это не будет представлять угрозу безопасности, не так ли?
решение1
Ну, во-первых, вы должны иметь возможность отключить вывод списка каталогов (тем самым избавляя от необходимости засорять дерево каталогов бесполезными файлами index.php), просто добавив следующую строку в файл .htaccess в вашем каталоге include:
Options -Indexes
Теперь, что касается возможности доступа пользователей к исходному коду PHP, то, если ваш веб-сервер правильно настроен на интерпретацию файлов PHP, а не просто обслуживает их напрямую, все должно быть в порядке (при условии, что ваши включаемые файлы не содержат echo()
никаких переменных или чего-то подобного).
решение2
Если у вас есть AddType или SetHandler, определенные для PHP-файлов, то они будут интерпретированы apache/webserver перед тем, как будут переданы клиентам. Таким образом, клиент не увидит исходный код php, а только сгенерированный html.
решение3
Если я правильно вас понял, вы хотели бы получить исходный код PHP для людей, знающих фактический URL файла PHP. Вы можете использовать что-то вроде этого, но помните: это не настоящая безопасность, поэтому лучше не включайте это в файлы PHP, содержащие личные вещи, такие как имя пользователя/пароль базы данных и т. д.
<?php
if($_GET['hash'] === "jV1V-7-VhS09K-_77GtEoOd86K2-ba-W") {
show_source(__FILE__);
}
?>
Таким образом, только люди, знающие этот «хеш» (и злые люди, которые пытаются вас взломать), могут получить этот исходный код, перейдя по ссылкеhttp://example.org/myfiles/con.php?hash=jV1V-7-VhS09K-_77GtEoOd86K2-ba-W.