当我请求/personal/faces/public/login.xhtml
时,它可以正常工作,但是当我没有请求时/personal/public/login.xhtml
,/faces
我获得了页面的原始源代码。
我想避免人们可以看到页面的源代码。我怎样才能做到这一点?
当我请求/personal/faces/public/login.xhtml
时,它可以正常工作,但是当我没有请求时/personal/public/login.xhtml
,/faces
我获得了页面的原始源代码。
我想避免人们可以看到页面的源代码。我怎样才能做到这一点?
发生这种情况是因为您已在 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 应用程序部署以及可能的文件系统的其他部分请求和下载工件。这是您需要调查的安全漏洞。选项因您的应用服务器而异