如何隐藏程序使用的技术?
How to hide out what technology a program is using?
当我搜索我的问题时,我发现了这个老问题。
How to find out what technology a program is using?。
它定义了如何显示而不是如何隐藏?我有几个 asp.net 站点。我的一些站点使用 CKEditor 和其他 JavaScript 库。
当我在 :
中输入 url
它的节目:
是否有任何 web.config 设置或其他设置不显示我的 site.I 搜索经常使用但找不到任何 thing.Any 帮助的技术或程序,将不胜感激。谢谢。
除了混淆您的脚本之外,您的网站还可能以 http headers 和 html 元标记的形式泄露信息。例如,我的一个网站显示了这些 http 响应 headers:
Server: Microsoft-IIS/8.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
这些显示我的站点是 运行 iis8.5 和哪个 .net 版本是 builtwith.com 上显示的第一个信息。大多数(如果不是全部)Web 服务器都有一种抑制这些的方法,当然您可以控制元标记。
此外 url 也可以包含线索。如果您有以 .aspx、.jsp、.php 结尾的 urls,那将是一个致命的赠品。您可以使用 SEF urls 或对您使用的任何服务器技术使用某种 url 重写器来解决此问题
请注意,已经有关于它的完全相同的问题:
-
Nick says that if you're running apache, you can set your ServerTokens
to Prod
and set your ServerSignature
到 Off
从 http 请求中删除使用的模块。我希望您能为您的 asp.net
应用程序找到类似的 属性。
Authentictech also says on behalf of gary that you can ask them to remove your sites from their lookup service on this link。看看那个 link,您(作为域所有者)可以从其查找索引中永久删除您网站的条目。
-
Su' says 有一个 BuildWith 的页面告诉:
The technology has to be discoverable in either the page body, cookies
or server headers.
它还提到了 Security through obscurity,但得出的结论是(从安全的角度来看)模块的安全性比隐藏您正在使用的内容重要得多
假设您对一般解释感兴趣(因为可能有其他 builtwith-like 网站在做类似的事情):
那些类型的应用程序 可能 分析还提示像 html 结构、html 属性、html 元标记、 http headers,内置的 url 及其文件扩展名,以及 html 视图状态,这使它能够分析和(给定一些 technology-specific patterns/standards)推断您使用了哪些技术,例如 asp.net, jsf,以及其他技术。因此,即使您可以通过某种方式真正混淆生成的脚本、自定义构建的 url 并处理 http headers,我认为您也不会 完全 由于 html 结构(包括其属性、元标记和视图状态控件),能够隐藏使用的技术。
默认情况下 ASP.NET 对自己大喊大叫。它发送 HTTP headers 和每个响应告诉世界和狗你的网站托管的 ASP.NET 版本,甚至你正在使用的 MVC 版本。以下是每个请求都不必要地发送额外 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" />
然后需要清除自定义headers如下图
<httpProtocol>
<customHeaders>
<!-- X-Powered-By - Remove the HTTP header for added security and a slight performance increase. -->
<clear />
</customHeaders>
</httpProtocol>
阅读更多内容post:Securing the ASP.NET Web.config
github 中还有一个名为 NWebsec
的项目,NWebsec
允许您配置相当多的安全性 headers,一些对大多数应用程序有用,而另一些更专业一点。这是项目 link:
Getting started with NWebsec.
当我搜索我的问题时,我发现了这个老问题。
How to find out what technology a program is using?。
它定义了如何显示而不是如何隐藏?我有几个 asp.net 站点。我的一些站点使用 CKEditor 和其他 JavaScript 库。
当我在 :
中输入 url它的节目:
是否有任何 web.config 设置或其他设置不显示我的 site.I 搜索经常使用但找不到任何 thing.Any 帮助的技术或程序,将不胜感激。谢谢。
除了混淆您的脚本之外,您的网站还可能以 http headers 和 html 元标记的形式泄露信息。例如,我的一个网站显示了这些 http 响应 headers:
Server: Microsoft-IIS/8.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
这些显示我的站点是 运行 iis8.5 和哪个 .net 版本是 builtwith.com 上显示的第一个信息。大多数(如果不是全部)Web 服务器都有一种抑制这些的方法,当然您可以控制元标记。
此外 url 也可以包含线索。如果您有以 .aspx、.jsp、.php 结尾的 urls,那将是一个致命的赠品。您可以使用 SEF urls 或对您使用的任何服务器技术使用某种 url 重写器来解决此问题
请注意,已经有关于它的完全相同的问题:
-
Nick says that if you're running apache, you can set your
ServerTokens
toProd
and set yourServerSignature
到Off
从 http 请求中删除使用的模块。我希望您能为您的asp.net
应用程序找到类似的 属性。Authentictech also says on behalf of gary that you can ask them to remove your sites from their lookup service on this link。看看那个 link,您(作为域所有者)可以从其查找索引中永久删除您网站的条目。
-
Su' says 有一个 BuildWith 的页面告诉:
The technology has to be discoverable in either the page body, cookies or server headers.
它还提到了 Security through obscurity,但得出的结论是(从安全的角度来看)模块的安全性比隐藏您正在使用的内容重要得多
假设您对一般解释感兴趣(因为可能有其他 builtwith-like 网站在做类似的事情):
那些类型的应用程序 可能 分析还提示像 html 结构、html 属性、html 元标记、 http headers,内置的 url 及其文件扩展名,以及 html 视图状态,这使它能够分析和(给定一些 technology-specific patterns/standards)推断您使用了哪些技术,例如 asp.net, jsf,以及其他技术。因此,即使您可以通过某种方式真正混淆生成的脚本、自定义构建的 url 并处理 http headers,我认为您也不会 完全 由于 html 结构(包括其属性、元标记和视图状态控件),能够隐藏使用的技术。
默认情况下 ASP.NET 对自己大喊大叫。它发送 HTTP headers 和每个响应告诉世界和狗你的网站托管的 ASP.NET 版本,甚至你正在使用的 MVC 版本。以下是每个请求都不必要地发送额外 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" />
然后需要清除自定义headers如下图
<httpProtocol>
<customHeaders>
<!-- X-Powered-By - Remove the HTTP header for added security and a slight performance increase. -->
<clear />
</customHeaders>
</httpProtocol>
阅读更多内容post:Securing the ASP.NET Web.config
github 中还有一个名为 NWebsec
的项目,NWebsec
允许您配置相当多的安全性 headers,一些对大多数应用程序有用,而另一些更专业一点。这是项目 link:
Getting started with NWebsec.