2012-12-11 3 views
2

포트 80 및 443에서 수신 대기하는 apache tomcat 서버에서 실행되는 심각한 보안 문제가 있습니다. 이러한 포트에서 들어오는 HTTP/HTTPS 패킷의 라우팅은 제품 클래스에 의해 구성되며 실패합니다 요청 된 각 URL이 서버의 웹 루트 내에 있고 제공 될 수있는 유형의 파일을 참조하는지 확인합니다.Tomcat에서 파일 액세스 제한

특히 url에 '/ error/*'와 일치하는 패킷은 'docroot'폴더를 파일 제공을위한 문서 루트로 사용하도록 구성됩니다. 따라서 URL 인코딩 된 백 슬래시 인 %5C을 사용하여/error/디렉토리 (예 : docroot) 디렉토리를 통과하는 경로에 액세스하고 다운로드 할 수 있습니다. docroot를 같은 수준에있는 원격 파일 settings.properties에 액세스 할 수

https://MyDomain/error/..%5c..%5csettings.properties 

- 예를 들어 원격 사용자가 같은 URL을 제공 할 수 있습니다. 우리는 방화벽 규칙과 네트워크 세분화를 통해이를 극복하려고 노력하고 있습니다. 하지만 원격 사용자가 프로젝트 루트 폴더 외부의 파일에 액세스하지 못하게하는 데 사용할 수있는 tomcat의 설정이 있습니다. 그것은 매우 유용 할 것입니다.

+0

파일 경로 이외의 * .txt, * .properties와 같은 파일 형식에 대한 액세스를 차단할 수있는 필터링 옵션이있는 경우에도 매우 유용합니다. – user496934

답변

1

를 -은 /을 해결해야 모든 요청과 응답을 인코딩

. 여기에서

견적 (주의 : 아래의 URL은 현재 unavalable입니다) :
http://www.servletworld.com/servlet-tutorials/web-application-directory-structure.html

루트 디렉토리는 WEB-INF라는 디렉토리가 포함되어 있습니다. 루트 디렉터리 아래의 WEB-INF 디렉터리를 제외한 모든 항목은 공개적으로 이며 브라우저의 URL을 통해 액세스 할 수 있습니다.

WEB-INF 디렉토리가 웹 응용 프로그램의 개인 영역입니다, WEB-INF 디렉토리 아래 모든 파일은 http://somesite/WEB-INF/someresource.html처럼 URL을 지정하여 브라우저에서 직접 액세스 할 수 없습니다. 웹 컨테이너는 이 디렉토리의 내용을 제공하지 않습니다. 그러나 WEB-INF 디렉토리의 내용은 응용 프로그램 내의 클래스에서 액세스 할 수 있습니다. 웹 브라우저에서 직접 액세스 할 수 없도록하려는 JSP 또는 HTML 문서와 같은 자원이 있다면 WEB-INF 디렉토리 아래에 두어야합니다.

1

로봇을 사용하여 오류 폴더에 대한 액세스를 제한 할 수 있습니다. 또한/*에 대한 항목을 리디렉션 된 페이지에 매핑 할 수 있습니다. 당신은, 일부 파일에 직접 URL 액세스를 제한 WEB-INF 디렉토리에 넣어하려면> %의 5C 문제

+0

안녕하세요. 도움을 주셔서 감사합니다. 하지만 이것에 대해 자세히 설명해 주실 수 있습니까? – user496934

+0

안녕하세요, 모하메드 .. 정교하게 설명해 주시면 감사하겠습니다. – user496934

+0

안녕하세요, 아래 내용이 포함 된 webapps/ROOT 폴더에 robots.txt라는 텍스트 파일을 만들었습니다. 사용자 에이전트 : * Disallow : /*.txt – user496934