如何隐藏程序使用的技术?

时间:2015-04-06 07:30:02

标签: asp.net .net web

当我搜索我的问题时,我发现了这个老问题。

How to find out what technology a program is using?

它定义如何显示而不是如何隐藏?我有几个asp.net网站。我的一些网站使用CKEditor和其他JavaScript库。

当我输入我的网址时:

http://builtwith.com/

它的节目:  Result

是否有任何web.config设置或其他设置不显示我的网站使用的技术或程序。我搜索了很多但无法找到任何东西。任何帮助将不胜感激。谢谢。

3 个答案:

答案 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版本。下面是每个请求不必要地发送额外标头的示例:

ASP.NET custom headers

要解决此问题,您需要做一些事情。第一种方法是将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)

请注意,关于它的问题已经完全相同:


假设您对一般解释感兴趣(因为可能有其他内置类似的网站做类似的事情):

这些应用程序可能分析还提示html结构,html属性,html元标记,http标头,构建的url及其文件扩展名以及html视图状态,这使得它能够进行分析并(根据一些技术特定的模式/标准)推断出您使用的技术,如和其他技术。所以,即使你可以某种方式真正混淆生成的脚本,自定义构建的URL,并处理http标头,我认为你不会完全能够隐藏由于html使用的技术结构包括其属性,元标记和视图状态控件。