避免直接访问JSF页面的源代码

时间:2013-03-15 12:47:55

标签: jsf

当我请求/personal/faces/public/login.xhtml时,它运行正常,但当我请求/personal/public/login.xhtml而没有/faces时,我获取了该页面的原始源代码。

我想避免让人们看到页面的源代码。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为您已在web.xml中的/faces/*配置中指定了FacesServlet。因此,请求的任何与指定的url模式不匹配的文件将作为具有GET请求的常规文件提供 将该配置更改为以下内容以确保所有与JSF相关的请求都通过FacesServlet:

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

这样可以确保在返回客户端之前处理扩展名为.xhtml的所有文件。

虽然上述解决方案可以解决当前的问题,但您遇到的问题则指向更深层次的安全问题。它表明任何拥有浏览器的人都可以从您的Web应用程序部署以及可能的文件系统的其他部分请求和下载工件。这是一个你需要研究的安全漏洞。选项因应用服务器而异[/ p>