2009-11-23 3 views
0

Короткий вопрос: как я могу проверить, является ли каталог на моем веб-сайте практически доступным для записи для остального мира (даже вне моей собственной машины)?Тест безопасности для записи в удаленный каталог

Контекст:

я запускаю этот сайт, где хостинг-провайдер внедрила нечетную систему безопасности. Чтобы PHP записывал файлы на диск на сервере (linux), у целевого каталога должны быть права на запись для всех.

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

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

Например: есть ли функция PHP для записи в удаленный каталог, например fopen('http://domain.tld/foo/evil-hack.php', 'w')? Я тестировал , что и он не работает, но это не доказывает мне, что кто-то другой не найдет другого пути.

ответ

0

РНР функция CHMOD Ваш ответ:

http://php.net/manual/en/function.chmod.php

добавление и fileperms(); должно помочь вам тоже.

+0

Я знаю, как протестировать его с самого сервера. Я хочу знать, как я могу протестировать запись в этот целевой каталог с другого компьютера (или другого пользователя на том же общем хосте), чтобы убедиться, что, несмотря на то, что вы даете каждому разрешение на запись, мой сценарий на самом деле действительно единственный, который _can_ пишет ему , как утверждает мой хозяин. – avdgaag

+0

А я понимаю, чего вы пытаетесь достичь. Я скоро буду в такой ситуации, потому что я разрабатываю веб-приложение для нескольких пользователей (читайте: разные клиенты, с разными базами данных). Я * думаю *, что когда вы пытаетесь писать в каталог, который не является частью вашей среды размещения, вы не можете писать в этот каталог, потому что вы заблокированы в своем родном каталоге. И, возможно, apache «запускает» другого пользователя для обработки запроса для двух разных учетных записей хостинга. Хотя это только дикая догадка, как я уже упоминал, я собираюсь столкнуться с такой же ситуацией через несколько недель;) – Ben

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