시작하려면 XAMPP가 프로덕션에 적합하지 않다는 것을 알고 있습니다. 하지만 저는 Apache, MySQL을 사용하는 초보자이고 가장 중요한 것은 PHP를 처음 접했다는 것입니다. 나는 Node.js/Java/Javascript 배경에서 왔기 때문에 그것은 나에게 매우 새로운 것입니다.
XAMPP를 사용하여 개발 중인 이 특정 테스트 앱에서는 Windows도 사용하고 있습니다(이 역시 나에게는 매우 특이한 일입니다. 저는 보통 Ubuntu를 사용하여 서버를 만들고 관리합니다).
저는 미리 만들어진 PHP 템플릿을 통해 이 앱을 만들었으므로 XAMPP의 보안 페이지 절차를 실행하기 전에 모든 'htdocs' 파일을 교체했습니다.
환경을 조금이라도 확보하기 위해 취한 단계를 진행하고 싶습니다. 더 많은 제안을 주시거나 누락된 부분이 있으면 알려 주시기 바랍니다.
- 폴더 를 완전히 제거했습니다
webdav
. - MySQL 루트 비밀번호를 변경했습니다.
- 쿠키 인증에 대한 PhpAdmin 기본 비밀번호를 변경했습니다.
.htaccess
보호하고 싶은 폴더에 파일을 설정했습니다 . (Apache를 처음 접하는 나에게는 이것이 다소 혼란스럽습니다. 처음에는 전체 XAMPP 폴더를 보호하고 싶었지만 자격 증명을 사용하여 강제로 로그인하지 않으면 아무도 내 웹 앱에 액세스할 수 없었습니다..htpsswd
이는 내가 원하는 것이 아닙니다. 민감한 사용자 파일을 다운로드할 수 있는 폴더에서만 이런 일이 발생하기를 원했기 때문에 그에 따라 파일을 이동했습니다.htaccess
. 하지만 많은 사람들이 취해야 할 첫 번째 보안 조치는 다음과 같다고 말하는 것을 볼 수 있기 때문에 이것이 바람직한지는 모르겠습니다. 실제로.htaccess
XAMPP 폴더의 루트에 파일을 설정했지만 인증으로 보호되지 않았습니다. Apache가 어떤 폴더를 "접근할 수 있는지" 결정하는 방법에 대한 이해가 부족하기 때문에 걱정됩니다. 내가 명시적으로 생성하고 사용자가 사용할 수 있도록 허용하는 경로를 통해서만 액세스할 수 있는 웹 서버입니다. PHP와 Apache가 이러한 권한을 정의하기 위해 어떻게 함께 작동하는지 잘 모르겠습니다.- 저는 FileZilla를 사용하지 않습니다(제가 아는 한 실행하지도 않습니다).
- 나는 Mercury를 사용하지 않습니다(내가 아는 한 Mercury를 실행하지도 않습니다).
- 나는 Tomcat을 사용하지 않습니다(내가 아는 한 Tomcat을 실행하지도 않습니다).
이제 좀 더 우려되는 부분을 말씀드리겠습니다 PhpAdmin
. 처음에는 localhost를 통해 액세스할 수 있었지만 내 도메인과 SSL을 가리키는 VirtualHost 서버를 설정한 후에는 이를 잃어버렸습니다. localhost를 가리키는 포트 80에서 수신 대기하는 다른 VirtualHost를 다시 생성하는 방법을 "수정"했습니다. 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도 보호되고 있지만 이건 잘 모르겠습니다. 어떤 의견이라도 보내주시면 감사하겠습니다.