
나는 다음을 살펴보았다.정식 주제ServerFault에는 슬프게도 "Apache vHost" 이후에 있었던 것이 답변되지 않은 질문 목록에 있었습니다. 바로 그 질문을 하는 사람들이 많기 때문에 나는 이것이 조금 놀랍다는 것을 알았습니다.
어쨌든 내 질문은 "어떻게"에 관한 것이 아니라 가상 호스트 구성 파일에서 사용할 "모범 사례"는 무엇입니까? 다음과 같은 가상 호스트가 있습니다.
<VirtualHost *:80>
ServerName example.com
DocumentRoot /home/webmaster/examplesite.com/htdocs
ErrorLog /home/webmaster/examplesite.com/logfiles/error.log
CustomLog /home/webmaster/examplesite.com/logfiles/access.log combined
</VirtualHost>
그것은 작업을 수행하고 작업을 수행하지만 개선할 수 있는지 알고 싶었습니다. 특히 다음과 같은 문제가 해결되었는지 확인하고 싶습니다.
- 내 사이트는 얼마나 안전합니까?
- 사용자가 이미지를 게시할 수 있는 "업로드" 폴더를 갖고 싶습니다. vHost 파일에 뭔가를 추가해야 합니까?
- 위의 설정이 내 웹사이트를 최적화합니까, 아니면 더 최적화할 수 있습니까?
- 내가 놓친 다른 것이 있습니까?
답변1
내 사이트는 얼마나 안전합니까?
잠재적으로 공개적으로 액세스할 수 있도록 로그 파일을 저장하는 것은 좋지 않습니다. 프로덕션 환경에서는 오류 메시지 인쇄가 꺼져 있어야 공격자가 눈을 멀게 할 수 있습니다(그들은 사용자에게 오류 메시지를 사용할 수 없습니다[1]). 오류 로그에 액세스하면 시행착오를 겪을 가능성이 더 커집니다.
사용자가 이미지를 게시할 수 있는 "업로드" 폴더를 갖고 싶습니다. vHost 파일에 뭔가를 추가해야 합니까?
업로드를 원합니다밖의사용자가 스크립트(예: PHP)를 업로드한 다음 찾아보고 실행할 수 있는 가능성을 줄이기 위해 문서 루트. 당연히 이것이 당신이 가져야 할 유일한 보호는 아니지만 확실히 구성 요소 중 하나입니다.
위의 설정이 내 웹사이트를 최적화합니까, 아니면 더 최적화할 수 있습니까?
가상 호스트로는 웹사이트를 그렇게 많이 최적화할 수 없습니다. 이는 Apache 수준 구성입니다(이 질문의 범위를 벗어납니다.)
내가 놓친 다른 것이 있습니까?
솔직히 말해서 말하기가 어렵습니다. 사람마다 요구 사항이 다릅니다. 예를 들어, 귀하의 웹사이트가 다음과 같은 경우 에도 작동할 것으로 example.com
예상하십니까 www.example.com
? 그렇다면 ServerAlias
.
[1] '잘못된 SQL' 오류가 발생할 수 있다고 상상해 보세요. 그들은 정리되지 않은 입력을 발견했다는 것을 알고 신속하게 귀하의 웹 사이트에 침입할 수 있는 방법을 찾았습니다. 최악의 부분은 이러한 종류의 공격이 자동화될 수 있다는 것입니다.