当我搜索我的问题时,我发现了这个老问题。
How to find out what technology a program is using?。
它定义如何显示而不是如何隐藏?我有几个asp.net网站。我的一些网站使用CKEditor和其他JavaScript库。
当我输入我的网址时:
它的节目:
是否有任何web.config设置或其他设置不显示我的网站使用的技术或程序。我搜索了很多但无法找到任何东西。任何帮助将不胜感激。谢谢。
答案 0 :(得分:4)
除了模糊脚本之外,您的网站还可能以http标头和html元标记的形式提供信息。例如,我的一个站点显示了这些http响应标头:
Server: Microsoft-IIS/8.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
这些显示我的网站正在运行iis8.5以及哪个.net版本是buildwith.com上显示的第一个信息。大多数(如果不是所有)Web服务器都有抑制这些的方法,当然您可以控制元标记。
此外,网址也可以包含线索。如果你的网址以.aspx,.jsp,.php结尾,这是一个死的赠品。您可以使用SEF网址或使用某种网址重写器解决此问题,无论您使用何种服务器技术
答案 1 :(得分:4)
默认情况下,ASP.NET大肆吹嘘自己。它会向每个响应发送HTTP标头,告诉全世界和狗你的网站托管的是什么版本的ASP.NET,甚至是你正在使用的MVC版本。下面是每个请求不必要地发送额外标头的示例:
要解决此问题,您需要做一些事情。第一种方法是将httpRuntime部分的enableVersionHeader设置设置为false。
<!-- enableVersionHeader - Remove the ASP.NET version number from the response headers. Added security through obscurity. -->
<httpRuntime targetFramework="4.5" enableVersionHeader="false" />
然后您需要清除自定义标题,如下所示。
<httpProtocol>
<customHeaders>
<!-- X-Powered-By - Remove the HTTP header for added security and a slight performance increase. -->
<clear />
</customHeaders>
</httpProtocol>
更多阅读此帖:Securing the ASP.NET Web.config
github中还有一个名为NWebsec
的项目,NWebsec
允许你配置相当多的安全标题,有些对大多数应用程序很有用,而有些则更专业。这是项目链接:
Getting started with NWebsec
答案 2 :(得分:0)
请注意,关于它的问题已经完全相同:
Nick says如果你正在运行apache,可以将ServerTokens
设置为Prod
并将ServerSignature
设置为Off
以删除使用来自http请求的模块。我希望您能为asp.net
申请找到类似的属性。
Authentictech also says on behalf of gary你可以问他们remove your sites from their lookup service on this link。查看该链接,您(作为域名所有者)可以删除您的网站&#39;他们的查找索引中的条目永远。
Su' says有一个BuildWith的页面告诉:
必须在页面正文,cookie中发现该技术 或服务器标题。
它还提到Security through obscurity,但结论(从安全角度来看)模块&#39;安全比隐藏您正在使用的内容
假设您对一般解释感兴趣(因为可能有其他内置类似的网站做类似的事情):
这些应用程序可能分析还提示html结构,html属性,html元标记,http标头,构建的url及其文件扩展名以及html视图状态,这使得它能够进行分析并(根据一些技术特定的模式/标准)推断出您使用的技术,如asp.net,jsf和其他技术。所以,即使你可以某种方式真正混淆生成的脚本,自定义构建的URL,并处理http标头,我认为你不会完全能够隐藏由于html使用的技术结构包括其属性,元标记和视图状态控件。