当我请求时/personal/faces/public/login.xhtml
,那么它工作正常,但是当我请求时/personal/public/login.xhtml
没有/faces
我获得了该页面的原始源代码。
我想避免人们看到页面的源代码。我怎样才能实现这个目标?
发生这种情况是因为您指定了/faces/*
在你的FacesServlet
web.xml 中的配置。因此,任何与指定 url 模式不匹配的请求文件都将作为常规文件提供GET
要求
将该配置更改为以下内容,以确保所有与 JSF 相关的请求都通过 FacesServlet:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
这确保了all扩展名为 .xhtml 的文件将在返回客户端之前进行处理。
虽然上述解决方案可能会解决眼前的问题,但您所遇到的情况表明了更深层次的安全问题。它表明任何拥有浏览器的人都可以从您的 Web 应用程序部署以及文件系统的其他部分请求和下载工件。这是您需要研究的安全漏洞。选项因您的应用程序服务器而异
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)