如何为PrimeFaces资源隐藏“ln”和“v”实现/版本相关参数

问题描述 投票:1回答:1

我在我的应用程序中使用primefaces和primefaces-extensions。对于.css和.js文件等每个资源,在该资源的GET请求中还有一个“ln”和“v”查询参数,如下所示:

primefaces-extensions.js?ln=primefaces-extension&v=6.1   
validation.js?ln=primefaces&v=6.1

Snapshot of example request in Firefox developer console

作为安全问题,由于这些参数显示了我正在使用的框架的确切版本,我该如何隐藏它们?

jsf primefaces jsf-2 primefaces-extensions
1个回答
2
投票

隐藏'ln'是没用的,因为只需很少的努力,你就可以从javascript文件和页面源获得相同的信息('PF()到处都是)

然而,'v'是一个稍微不同的问题。如果您使用未修改的PF源,隐藏它也是没用的,因为只需很少的努力(创建哈希),可能的黑客可以下载您的源,创建哈希并将生成的哈希与他们可以轻松创建的词典进行比较现有PrimeFaces源,然后知道您使用的版本。因此,这里唯一要做的就是修改源代码,通过稍微修改(添加空格应该有帮助),使其不会出现“已知或可比较”的哈希值。

但是,如果您确实希望该版本不显示,您可以下载PrimeFaces源并将版本信息替换为一些模拟编号并构建该自定义版本。请记住,如果您不对源进行任何更改,上面提到的字典查找仍然有效。所以这只是黑客的一些小麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.