2013-03-15 4 views
1

/personal/faces/public/login.xhtml을 요청하면 /personal/public/login.xhtml없이 /faces을 요청할 때 페이지의 원시 소스 코드를 얻습니다.JSF 페이지의 소스 코드에 직접 액세스하지 않기

사람들이 페이지의 소스 코드를 볼 수 없도록하고 싶습니다. 이것을 어떻게 할 수 있습니까?

+0

관련 항목 : http://stackoverflow.com/questions/3008395/jsf-facelets-sometimes-i-see-the-url-is-jsf-and-sometimes-xhtml-why/및 http://stackoverflow.com/questions/3112946/jsf-link-results-in-plain-xhtml-file-instead-of-generated-jsf-page – BalusC

답변

3

web.xml의 FacesServlet 구성에 /faces/*을 지정했기 때문에 이러한 현상이 발생합니다. 그 결과, 지정된 URL 패턴과 일치하지 않는 파일 요청은 해당 설정을 변경 GET 요청에 일반 파일로 제공됩니다 모든 JSF 관련 요청은 FacesServlet에 통과하기 위해 다음

<servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 

확장자가 .xhtml 인 파일이 클라이언트로 반환되기 전에 처리됩니다.

위의 해결 방법으로 즉각적인 문제가 해결 될 수 있지만 실제로 발생한 문제는 보안 문제가 심각하다는 것을 의미합니다. 이는 브라우저를 가진 사람이 웹 응용 프로그램 배포 및 파일 시스템의 다른 부분에서 아티팩트를 요청하고 다운로드 할 수 있음을 나타냅니다. 이 보안 구멍을 살펴 봐야 할 것입니다. 옵션은 앱 서버에 따라 다릅니다.

관련 문제