Основные шаги по превращению XAMPP в «безопасную» среду для производства

Основные шаги по превращению XAMPP в «безопасную» среду для производства

Для начала я знаю, что XAMPP не идеален для производства. Но я новичок в использовании Apache, MySQL и, что самое важное, я совсем новичок в PHP. Я пришел из Node.js/Java/Javascript, так что все это для меня очень ново.

В этом конкретном тестовом приложении, которое я разрабатываю с использованием XAMPP, я также использую Windows (что также очень необычно для меня. Обычно я использую Ubuntu для создания и управления своими серверами).

Я создал это приложение с помощью готового шаблона PHP и поэтому заменил все файлы «htdocs», прежде чем смог запустить процедуры страницы безопасности XAMPP.

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

  • Я полностью удалил webdavпапку.
  • Я изменил пароль root для MySQL.
  • Я изменил пароль PhpAdmin по умолчанию для Cookie Auth.
  • Я создал .htaccessфайл в папках, которые я хотел защитить. (Поскольку я новичок в Apache, это немного сбивает меня с толку. Сначала я хотел защитить всю папку XAMPP, но тогда никто не мог получить доступ к моему веб-приложению без необходимости входа с учетными .htpsswdданными, чего я не хотел. Я хотел, чтобы это происходило только с папками, в которых есть загружаемые конфиденциальные файлы пользователя, поэтому я переместил файл .htaccessсоответствующим образом. Хотя я не знаю, целесообразно ли это вообще, поскольку я вижу, как многие говорят, что первая мера безопасности, которую следует предпринять, — это фактически создать файл .htaccessв корне папки XAMPP. Хотя у меня есть один, он не защищен авторизацией. Мои опасения возникают из-за отсутствия понимания того, как Apache решает, какая папка «доступна» или что-то в этом роде. Я привык создавать веб-сервер, который доступен только через маршруты, которые я явно создаю и разрешаю пользователю использовать. Я не совсем уверен, как PHP и Apache работают вместе, чтобы определять эти разрешения.)
  • Я НЕ использую FileZilla (насколько мне известно, и не запускаю ее).
  • Я НЕ использую Mercury (и не использую его, насколько мне известно).
  • Я НЕ использую Tomcat (и не запускаю его, насколько мне известно).

Теперь, более беспокоящая меня часть PhpAdmin. Сначала у меня был доступ к нему через localhost, но я потерял его, как только настроил свои серверы VirtualHost, указывающие на мой домен и SSL. Я "исправил" это, заново создав другой VirtualHost, прослушивающий порт 80, также указывающий на localhost. Хотя я и пытался получить PhpAdminудаленный доступ через домен и IP, но безуспешно, я все еще беспокоюсь, что он может быть каким-то образом уязвим через сеть. Вот моя VirtualHostнастройка наhttpd-ssl.conf

<VirtualHost *:80>
   ServerName localhost
   DocumentRoot "C:/xampp/apache/logs/error.log"
</VirtualHost>

##
## SSL Virtual Host Context
##
<VirtualHost *:80>
   ServerName http://example.com
   DocumentRoot "C:/xampp/apache/logs/error.log"
   Redirect / https://example.com/login
</VirtualHost>

<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "C:/xampp/htdocs"
ServerName example
ServerAdmin [email protected]
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"

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

Связанный контент