由于最近的一些渗透测试,我一直在更新我们的一些代码,以使用最新版本的jQuery(3.6.4)。我们已经安排了另一轮测试,但与此同时,我的同事一直在使用渗透测试人员使用的相同工具,以确保我们没有错过任何东西。这个工具找到了一个我错过的jQuery的引用。我花了一段时间才找到它,但似乎AjaxControlToolkit正在生成一个名为
- TSM_CombinedScripts*=True&v=2GFwlGU9ATlFIxrdsXRzcja58_1t5F8HSleaZM4ZQwk1&TSM_Bundles=&cdn=false
包含jQuery 1.9.1。
那么我的问题是,我如何让AjaxControlToolkit使用最新版本的JQuery -或者只是不包括上述文件中的版本1.9.1?最新版本的jQuery已经在页面上,所以它不需要包含旧版本。我尝试添加一个AjaxControlToolkit.config,并使用一个remove子句来阻止它使用旧版本,但没有什么不同。
1条答案
按热度按时间7gcisfzg1#
嗯,你的结论看起来是对的。
查看aj toolkit,并搜索jQuery,我看到/发现:
问题是,在构建aj工具包时,脚本被包含在“资源”文件中,因此它们可以被各个部分使用。
我想我使用的版本是19.1或20。
无论如何,因为我做了一些定制的aj工具包,那么我不使用最新版本。
你可以检查/下载/尝试/查看最新版本的aj工具包,看看它使用的是什么版本的jQuery。
您可以删除aj工具包中的jQuery引用,并“假设”(如您所述)jQuery已经可用。
我没有这样做,但作为第一步,我建议您考虑获取aj工具包的源代码并重新构建它。
这是一个有点“怪物”的代码和内部相关的库位。
我用的是aj对话框,现在还在用html编辑器和ajaxfile-download。
我现在使用jQuery.UI对话框代替aj对话框。
所以,我只使用了两个部分:
AjaxFileDownload和HTML编辑器。
不管怎样
我没有意识到jQuery被包括在内,因此作为“第一步”,我将更新那个jQuery库。
然而,(不幸的是),我没有做测试,如果我可以删除它都在一起。我的第一个选择是删除jQuery引用,但我怀疑这会“搞乱”项目的构建。正如我所指出的,脚本作为资源文件包含在.dll中,因此删除脚本并不“哦,那么简单”。
非常重要,但比非常重要:
你需要为你的项目获取/抓取/采用/拥有一个.js最小化器。当我修改aj工具包中的任何.js代码时,然后我在那个时间点右键单击,并将.js“缩小”为“min”版本。我发现,如果你不这样做,你结束时,建设的aj工具包,你现在有你的修改.js文件,但. min.js文件没有被更新!!!!所以,当你运行project作为debug,它会工作,但如果你在web config中打开debug=true(删除debug设置),那么你会发现你的aj控件和位和部分现在使用. min.js,但它们在构建过程中没有正确缩小。所以,即使你把你的项目构建为“release”,你最终也没有“min.js”文件。
底线是:任何js文件,包括min文件,然后再重新构建aj工具包。
这篇文章已经太长了,但我抓住了一个nuget包,它为vs添加了一个右键单击上下文菜单,因此您可以在对aj工具包中的任何.js文件进行更改后立即进行最小化。
在这种情况下,您实际上并没有修改任何.js,而是替换,因此如果您要重新构建aj工具包,请确保同时替换.js和.min.js文件。
此时,您可以重新构建整个she-bang,现在开始为您的项目使用新的ajaxtoolit.dll。
底线是:
您将必须:
A)使用较新的jQuery版本重新构建aj工具包。
或
B)在项目中到处乱逛,看看是否可以“删除”现有的jQuery引用,但这可能会导致大量的工作,因为你必须挖掘并查看aj构建过程中的位置,时间以及如何包括jQuery位和部分-我不确定我会走这条路。
换句话说,“安全”的赌注是包含新的jQuery.js、jQuery.min.js和re-build。
这将为您更新jQuery。
这些伟大探索的第2部分将考虑是否可以100%删除aj工具包中的jQuery引用。所以,更少的风险,更少的努力,更少的时间是简单地更新jQuery.js,jQuery.min.js,并重新构建。
我最近更新了一个网站到最新的jQuery,但是我“忘记”了那个网站也使用了aj工具包(你在这里的帖子告诉我,我还有更多的工作要做!)!!).
我现在必须“记住”去更新我的aj工具包副本中的jQuery。
无论哪种方式,您都需要获取/获取一份aj工具包源代码的副本(在git-hub上),并进行自己的重新构建以控制它将使用的jQuery版本。
我想你也可以去看看他们最新的jQuery版本。