Недавно я настроил новый виртуальный сервер для размещения своих сайтов. Я довольно плохо знаком с системами на основе Linux и сисадминами, и в результате у меня возникло несколько вопросов относительно прав доступа к файлам и каталогам.

Мой основной сайт находится в /var /www, и там у меня есть каталог, в котором я храню несколько PHP-скриптов, один из которых содержит сведения о подключении к базе данных. Что я хочу сделать, так это убедиться, что никто не имеет доступа к этим сценариям, посетив www.mydomain.co.uk/mydir, но по-прежнему доступен для пользователя www-data, чтобы их можно было вызывать и выполнять с других страниц сайт.

Моя первоначальная мысль - изменить права доступа к файлам до 400; Тем не менее, я не знаю, что делать с разрешениями каталога.

Как изменить разрешения для каталога, чтобы файлы в нем могли выполняться, но не просматриваться людьми при посещении сайта www.mydomain.co.uk/mydir?

3 ответа3

1

Вы можете исправить это через конфигурацию apache. См. Http://httpd.apache.org/docs/2.2/howto/access.html.

Используя

<Directory /mydir>
    Order deny,allow
    Deny from all
</Directory>

, внешний доступ к каталогу заблокирован, но php-скрипты все еще имеют доступ к нему.

1

Правильно настроенный стек Apache/PHP не позволит файлу .php, содержащему информацию о вашей базе данных, выводиться в браузер, поскольку он будет интерпретировать его как скрипт .php, а не как текст. Поэтому, если кто-то наткнется на этот каталог или файл, он не увидит логин базы данных - опять же, при условии, что Apache настроен правильно и в вашем скрипте нет ошибок.

Однако рекомендуется размещать сценарии в другом каталоге, нежели общедоступный каталог, который не обслуживается непосредственно Apache. Многие полезные ответы доступны на Stackoverflow с некоторыми поисками, вот один:

https://stackoverflow.com/questions/2573496/help-securing-files-access-with-htaccess-and-php

Редактировать:

И другой.

https://stackoverflow.com/questions/6524565/php-file-security-on-webserver

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

http://www.yiiframework.com/

http://ellislab.com/codeigniter

0

если у вас есть index.php, не имеет значения, если они перейдут в /var /www /mydir, потому что он будет отображать только то, что находится в index.php ..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .