Я пытаюсь помочь другу переместить веб-сайт из одного веб-отеля в другой. Старое место уже закрыто, у меня есть только плоский tar-файл того, что было в нем.Какие разрешения для скриптов/каталогов PHP?
Веб-сайт содержит документы HTML и можно загрузить небольшое приложение Java (для загрузки на мобильный телефон) для отправки данных на веб-сайт.
Мобильное приложение Java отправило строку в URL=<HOST>/php/register.php
. Этот php-скрипт включал еще один php-скрипт (../inc/db_login.php
), который подключался к SQL-базе данных с использованием $link=mysql_connect()
. Другой файл, register.php
, сделал вставку SQL для размещения новых отправленных данных в БД.
Мой вопрос в основном, где я должен разместить эти 2 PHP-файла на новом веб-сайте и какие разрешения должны иметь каталоги и файлы?
Старый веб-сервер, очевидно, имел каталоги /php
и /inc
. Ни один из них не существует на новом веб-сервере. Должен ли я их создавать? Какое разрешение они должны иметь? Я предполагаю, что причиной наличия пароля в отдельном файле PHP была безопасность. Каталог /php
и /inc
, вероятно, имел разные разрешения.
Новый сервер имеет каталоги:
/httpdos
/httpsdos
/cgi-bin
/conf
(и некоторые другие, вероятно, не имеет значения)
Мои вопросы
ли расширение файла (
.php
) означает, что-то на сервере: в PHP скрипты «включены» в HTML коде (между<?...?>
, делает сервер должен смотреть на суффикс файла, или это не имеет значения? (Я понимаю, что сервер реагирует на<?...?>
, конечно)должен общественность файл (
register.php
в моем случае) будет помещен в каталогеhttpdocs/
или же сервер (Apache, я думаю) реагирует на что-то и получает его в другом каталоге?Если PHP скрипт разрешения
R-X
(чтение и выполнение),--X
(выполнить) илиR--
(читать)? С точки зрения ОС я полагаю, что apache просто читает эти файлы, а это значит, что они должны бытьR--
, но это будет означать, что если служба PHP будет «остановлена», клиент получит весь код PHP в своем браузере (?). Я бы предпочел, чтобы он был--X
, но поскольку он не является ни двоичным, ни#!
, я думаю, это должно быть--R
?Если PHP скрипт общественность может быть помещен в другой директории (например
/php
вместо/httpdocs
), что/php
(и сценарий) должны иметь разрешение ?. Я предполагаю, что сервер должен знать об этом каталоге/php
(или есть обычные значения по умолчанию?)PHP-скрипт включен (
../inc/db_login.php
, содержащий пароль SQL) не должен быть ниже/httpdocs
Я думаю. Это означает, что мойregister.php
содержит файл, который не находится под поддеревом/httpdocs
. Это работает? Должен ли сервер знать?
Насколько я понимаю, вам может понадобиться знать конфигурацию сервера. Просто предположите, что по умолчанию в вашем ответе (и вы можете определить, где он изменился, если он есть).
Спасибо за ваш ответ. Я поставлю register.php в httpdocs/php. Теперь я попытался создать/inc и включить ../../inc/db_login.php, но создание/inc было отклонено ... Должен ли db_login.php быть помещен в cgi-bin тогда ?. И если apache находится в безопасном режиме, тогда db_login должен находиться в дереве httpdocs ... разве это не риск для безопасности? –
Ничего, кроме скриптов CGI, не должно быть в 'cgi-bin'. Да, наличие файлов конфигурации под DocumentRoot является потенциальным риском для безопасности; PHP может решить эту проблему, установив опцию config, которая указывает дополнительный каталог, который может быть явно включен. Но это не так. –
Но если оба register.php и db_login.php находятся под корнем html doc, а их разрешения одинаковы, то какой коэффициент усиления (разумный уровень безопасности) должен иметь их в двух разных файлах. Я полагаю, что идея заключалась в том, чтобы иметь «большую безопасность» в отношении паролей, включенных в db_login ...? Разве это не риск того, что код попадет к клиенту, если PHP не удастся? Еще раз большое спасибо за ваше время./C –