/personal/faces/public/login.xhtml
을 요청하면 /personal/public/login.xhtml
없이 /faces
을 요청할 때 페이지의 원시 소스 코드를 얻습니다.JSF 페이지의 소스 코드에 직접 액세스하지 않기
사람들이 페이지의 소스 코드를 볼 수 없도록하고 싶습니다. 이것을 어떻게 할 수 있습니까?
/personal/faces/public/login.xhtml
을 요청하면 /personal/public/login.xhtml
없이 /faces
을 요청할 때 페이지의 원시 소스 코드를 얻습니다.JSF 페이지의 소스 코드에 직접 액세스하지 않기
사람들이 페이지의 소스 코드를 볼 수 없도록하고 싶습니다. 이것을 어떻게 할 수 있습니까?
web.xml의 FacesServlet
구성에 /faces/*
을 지정했기 때문에 이러한 현상이 발생합니다. 그 결과, 지정된 URL 패턴과 일치하지 않는 파일 요청은 해당 설정을 변경 GET
요청에 일반 파일로 제공됩니다 모든 JSF 관련 요청은 FacesServlet에 통과하기 위해 다음
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
확장자가 .xhtml 인 파일이 클라이언트로 반환되기 전에 처리됩니다.
위의 해결 방법으로 즉각적인 문제가 해결 될 수 있지만 실제로 발생한 문제는 보안 문제가 심각하다는 것을 의미합니다. 이는 브라우저를 가진 사람이 웹 응용 프로그램 배포 및 파일 시스템의 다른 부분에서 아티팩트를 요청하고 다운로드 할 수 있음을 나타냅니다. 이 보안 구멍을 살펴 봐야 할 것입니다. 옵션은 앱 서버에 따라 다릅니다.
관련 항목 : 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