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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为PrimeFaces资源隐藏“ln”和“v”实现/版本相关参数相关的知识,希望对你有一定的参考价值。

我在我的应用程序中使用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

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

答案

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

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

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

以上是关于如何为PrimeFaces资源隐藏“ln”和“v”实现/版本相关参数的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Android Studio 中的所有配置删除未使用的字符串资源?

如何为 Angular.js 显示/隐藏添加平滑过渡?

如何为 Linux 卸载 Java

如何为 CSV 文件同时转义逗号和双引号?

如何为“可见性:隐藏”设置动画?

如何为 Mypy 类型注释指定 OrderedDict K,V 类型?