【问题标题】:What tactics can I use to prevent users from discovering what language a website is written in?我可以使用什么策略来防止用户发现网站是用什么语言编写的?
【发布时间】:2010-10-20 08:31:46
【问题描述】:

那么,如果您正在使用 Java 和 JSP 编写一个网站,并且不希望用户知道您是用什么语言编写的。您会使用什么技术?

【问题讨论】:

  • 我的第一个问题是,为什么? :) 为了安全起见进行混淆通常是一种虚假的安全感,但大多数情况下我只是好奇。

标签: java jsp spring-mvc struts


【解决方案1】:

在 Apache 配置文件中,以下行使其将 .php 识别为 PHP 脚本并按如下方式执行:

AddHandler php5-script .php

将其更改为 .asp,Apache 会将 .asp 文件识别为 PHP 脚本。例如,将其更改为 .blarg,Apache 会将 .blarg 文件识别为 PHP 脚本。

【讨论】:

  • 请注意这一点,并将您的脚本放在 webroot 之外,并链接到它们,以防万一您的 apache.conf 被覆盖并且您的脚本以纯文本形式显示给全世界。跨度>
  • .php 文件会有什么不同?如果 conf 文件被覆盖并且上面显示的 AddHandler 行被删除,则可以看到任何 .php 文件的源代码。
【解决方案2】:

您还需要检查您的应用发回的 HTTP 响应标头。通常,在响应标头中找到支持应用程序的技术是微不足道的。

【讨论】:

    【解决方案3】:

    1) 制作您自己的文件扩展名并配置您的服务器以将其映射到您选择的处理程序。例如重新映射 .whee 以调用 ASP.NET 处理程序或 PHP 处理程序。

    2) 确保您使用的任何处理程序都不会像大多数处理程序那样放入标头来指示它是什么。如果是,请将其配置为不,或者在堆栈中将其前面的内容放入堆栈中以在传输之前删除这些标头。

    【讨论】:

      【解决方案4】:

      除了此处的其他答案外,您还需要确保正确处理应用程序错误。如果您发出异常并且 Web 容器处理它,那么您正在使用什么将非常明显。

      【讨论】:

        【解决方案5】:

        如果您使用某种框架,例如 Struts2,您将拥有一个映射到调度程序 servlet 的扩展(*.action,或任何您选择的)。调度程序将请求“转发”到 WEB-INF 目录中的 JSP。用户只能看到被定向到 servlet 的 URL,并返回 HTML。他们不知道模板语言是什么。由于您可以为 servlet 映射选择您喜欢的任何内容,因此您可以编造一些东西,甚至用“.php”或“.asp”之类的东西误导它们。

        当然,您可能有一些 JSP 就在 web 应用程序目录中,而不是在 WEB-INF 中。您可以给它们一个不同的扩展名,并告诉容器将它们作为 JSP 处理,方法是创建一个 <jsp-property-group> 和一个 url-pattern 元素,该元素指定 web.xml 中的假扩展名。

        您还需要检查容器的文档以确定如何隐藏可能发送的任何服务器版本信息。要探索的另一件事是如何将会话 cookie 名称更改为“jsessionid”以外的名称。这有点小题大做,但它是 Servlet 规范的一部分,有些容器不支持更改它。

        【讨论】:

        • +1。使用 Spring MVC,通常控制器被映射到“.htm” - 所以没有特定于实现的扩展
        • 还要确保您的错误页面(404/500/等)不会泄露给您。
        • 不要使用像“.do”或“.action”这样的标准异常,这些很容易让框架得出结论。
        【解决方案6】:

        我唯一要做的就是如何将请求传递到没有扩展名(jsp、aspx、asp 等)的页面。这可以通过手动解析请求 url 来完成。此外,重新配置您的服务器以隐藏其详细信息。

        【讨论】:

        • 你可以使用 mod_rewrite 来帮助解决这个问题吗?
        猜你喜欢
        • 2014-09-26
        • 2011-02-14
        • 1970-01-01
        • 1970-01-01
        • 2013-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多