Для начала я знаю, что 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 также защищен, но в этом я действительно не уверен. Я был бы признателен за любые вклады.