【问题标题】:How do I secure my "hibernate.cfg.xml" file? (Nhibernate)如何保护我的“hibernate.cfg.xml”文件? (休眠)
【发布时间】:2010-10-11 10:31:59
【问题描述】:

如何保护我的“hibernate.cfg.xml”文件? (休眠)。它目前位于 web 应用程序的路由中,可以通过浏览器查看。

【问题讨论】:

    标签: .net security nhibernate


    【解决方案1】:
    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="hibernate.cfg.xml"
               type="System.Web.HttpForbiddenHandler"/>
        </httpHandlers>
      </system.web>
    <configuration>
    

    【讨论】:

    • 顺便说一句,这正是 *.config 文件的默认设置
    【解决方案2】:

    您的 hibernate.cfg.xml 应设置为“复制到输出目录:始终复制”当您构建它时,它会直接复制到您的输出中。如果您发布您的网站,它只会在您的输出 (bin) 目录中,因此没有人可以访问它。

    【讨论】:

    • 签出:nhforge.org/wikis/howtonh/… '向 FirstSolution 项目添加一个新的 xml 文件并将其命名为 hibernate.cfg.xml。将其属性“复制到输出”设置为“始终复制”。如果你这样做,那么它会从你的 bin 文件夹中读取(并防止被访问)。它没有理由存在于其他任何地方。
    【解决方案3】:

    它可以存在于 bin 目录中,这样它就会受到保护,如果您需要修改它,您的应用将在 bin 目录中进行更改时自动重启。

    编辑
    如果您的 nhibernate 代码位于单独的类库中,那么您可能实际上想要/必须这样做,这样您就不想将其配置与 web.config(或 app.config,如果在接口之间共享库)混合)

    【讨论】:

      【解决方案4】:

      这是一个很好的问题。

      必须有几种方法来保护它。我能想到的一种方法是 - 如果您不在网站中提供 XML - 更改针对网站注册的 XML 的 MIME 类型,以便不提供服务。

      其他不直接保护“hibernate.cfg.xml”文件的解决方案:

      1) 使用 NHibernate 部分处理程序在 web.config 中定义配置

      2) 在代码中配置

      3) 设置 NHibernate 以读取扩展名为 .config 的文件

      【讨论】:

        【解决方案5】:

        将 NHibernate 配置放在 web.config 中,这样就不会在浏览器中查看了。

        【讨论】:

          【解决方案6】:

          将它放在您的 App_Data 文件夹中。 App_Data 文件夹是 ASP.NET Web 应用程序中一个特殊的受保护文件夹,无法通过浏览器进行外部访问。我倾向于把我所有的配置文件放在那里(当然除了 web.config)。

          【讨论】:

            【解决方案7】:

            当您发布您的网站时,您要做的第一件事是删除位于根文件夹中的“hibernate.cfg.xml”文件,因此无需对其进行保护

            【讨论】:

            • 但是需要配置信息所以这会破坏应用程序吗?
            • 当你构建你的应用程序时,配置文件会被复制到bin文件夹,所以位于根文件夹的配置文件现在已经没有用了,你可以安全地删除它。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-06-29
            • 2011-11-30
            • 2013-02-21
            • 1970-01-01
            • 2015-04-06
            • 2015-01-07
            • 2011-12-16
            相关资源
            最近更新 更多