Java 如何保护XHTML文件不被编辑
我正在开发一个JSF应用程序,归档(war)将提供给多个客户,并将分别部署在他们自己的Tomcat服务器上。这只是一个前端应用程序,它使用web服务与远程服务器通信 在我的JSF应用程序中,一些选项卡和面板是根据登录用户的Java 如何保护XHTML文件不被编辑,java,jsf,jsf-2,xhtml,Java,Jsf,Jsf 2,Xhtml,我正在开发一个JSF应用程序,归档(war)将提供给多个客户,并将分别部署在他们自己的Tomcat服务器上。这只是一个前端应用程序,它使用web服务与远程服务器通信 在我的JSF应用程序中,一些选项卡和面板是根据登录用户的ORG\u ID和Roles有条件地呈现的。所有这些限制都以ELs的形式写入.xhtml页面: <rich:tab header="Registration" rendered="#{permissionController.hasSuperRole()}"/>
ORG\u ID
和Roles
有条件地呈现的。所有这些限制都以ELs的形式写入.xhtml
页面:
<rich:tab header="Registration" rendered="#{permissionController.hasSuperRole()}"/>
由于此应用程序部署在客户场所,因此他们可以编辑
.xhtml
文件并删除这些限制。有没有办法通过加密xhtml文件、检查上次修改的日期来克服这个问题?这个问题与java jsf或(x)html完全无关。这是一个普遍的问题,您永远不应该信任客户机(就像您永远不应该信任的Web应用程序一样,在Web应用程序中,用户可以在浏览器中操作html/javascript)
解决方案:只需在Web服务中执行附加授权即可 您可以重复检入操作方法。它是Java代码,不能在客户端更改。也许这不是最好的建议,但至少可以防止某些受限操作。这并不容易,但您可以创建自己的jsf impl版本。我认为这样的解决方案需要扩展
com.sun.faces.facelets.compiler.compiler
,并附加检查xhtml文件完整性的实现。“只需”在Web服务中执行附加授权。。。