2015-07-23 2 views
0

Есть ли способ предотвратить использование пользователем кода для включения php-файла, если у него есть доступ к серверу? Я не могу использовать .htaccess deny из решения любого типа, потому что, насколько я понимаю, это только для удаленного доступа. Я также не могу использовать решение, подобное описанному здесь link от Тайлера Картера, потому что я обрабатываю все страницы с одного центрального вызова, который включает в себя соответствующие части страницы. Таким образом, $ _SERVER ['PHP_SELF'] всегда возвращает тот же файл, и я не могу получить FILE вызывающего скрипта в вызываемом скрипте. Поэтому никто из них не работает.Можете ли вы предотвратить включение php из файловой системы сервера?

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

Надеюсь, что у меня что-то не хватает и что это может быть достигнуто с помощью .htaccess?

Я полагаю, что вопрос большой, если это даже стоит усилий по обеспечению безопасности?

+0

, если вы не доверяете кому-либо с доступом к серверу - почему у них есть доступ к серверу? –

+0

Вы не можете использовать разрешения файловой системы, не каждый пользователь имеет свои собственные домашние папки (CHROOT)? Похоже, вы беспокоитесь о том, что один пользователь получает файлы от другого пользователя. Если у вас есть пользователи, выполняющие php, вы не можете больше беспокоиться о файлах, например exec(); команд и тому подобное. – ArtisticPhoenix

+0

Я больше думаю о безопасности для систем cms, где администратор будет иметь доступ к серверу, но создатель cms может не захотеть, чтобы файлы были обновлены/включены. – fritz

ответ

1

No.

Если пользователь имеет право на запись файлов на ваш веб-корень, нет ничего, что вы можете сделать, чтобы предотвратить его/ее от создания PHP файлов (сокр написания собственного FileSystem) ,

Если вы не доверяете пользователю, у них не должно быть возможности писать в FS. Эта атака на самом деле довольно часто используется в реальном мире против установок CMS. Пользователь с разрешениями на загрузку файлов загружает оболочку PHP для захвата сервера.

+0

Вы хотите написать файловую систему на сервере? или есть способ написать файловую систему в php? – fritz

+0

Это было предложение полушутя, так как усилия были безумными, но: теоретически вы могли бы написать файловую систему (в FUSE или как драйвер ядра) и смонтировать эту файловую систему в корневом каталоге веб-сайта для принудительного применения произвольных правил доступа. Теперь это теоретически, и на практике вам просто не нужно давать пользователю доступ. – 0x90

+0

Что касается современных cms, то не существует способа предоставить доступ хотя бы одному администратору, правильно? – fritz

Смежные вопросы