【问题标题】:Location of .ini for web applicationsWeb 应用程序的 .ini 位置
【发布时间】:2011-05-12 11:40:37
【问题描述】:

我有一个 php 应用程序,我打算将关键设置保存在 .ini 文件中。但是,我认为可以通过网络访问该文件,那么放置它的“标准位置”在哪里?

【问题讨论】:

    标签: php linux ini


    【解决方案1】:

    您可以将其存储在文档/Web 根目录之上,或者专门阻止对其的访问。例如,PHP 应用程序的常见结构是:

    application/
    public/
    

    public 是 Web 根目录 - 所以我通常将应用程序配置存储在我知道无法访问的 application/config 中。

    另一种方法是使用 Apache 阻止它:

    <!-- Block access to all .ini files -->
    <Files ~ "\.ini">
        Order deny,allow
        Deny from all
    </Files>
    

    【讨论】:

      【解决方案2】:

      “标准位置”是不受 apache 根目录影响的任何地方。例如,您可以将其放在/home/someuser/ 下或其他位置。

      【讨论】:

        【解决方案3】:

        将 .ini 文件放在 Web 根目录之外,或者如果您确实想将其保留在 Web 根目录下,请使用 .htaccess 保护它。

        【讨论】:

          【解决方案4】:

          如果您将 INI 文件放在 webroot/docroot 中,就可以访问它。

          确保文件不能通过 docroot 访问是第一步。

          【讨论】:

            【解决方案5】:

            说实话,我会使用数据库。

            但是,如果您真的想使用平面文件(例如 .ini),您可以将它放在一个目录中,并使用 .htaccess 阻止人们通过浏览器访问它。这样,您仍然可以通过 php 文件函数访问该文件。

            为此,请在要保护的文件夹中创建一个名为 .htaccess 的文件(例如 ini/)

            然后,在这个文件中放:

            deny from all
            

            现在无法通过浏览器中的 url 访问该文件夹。

            【讨论】:

            • 虽然可以,但不能将数据库用户名/密码/主机存储在数据库中。配置文件对于任何不平凡的事情仍然有用,硬编码只为一次性的东西保留。
            【解决方案6】:

            将配置放置在网络服务器不可读但应用程序可读的目录中。一般来说,你有一个特定的目录可以被网络服务器读取,例如“web”、“www”、“public”或“public_html”。确保将其放在该目录下的目录中。

            这样,您的应用程序就可以读取文件:

            $cfg = parse_ini_file( 
                realpath( dirname( __FILE__ ) . '/../' ) . '/config.php' 
            );
            

            您的网络服务器不知道如何访问它,所以它是安全的。

            【讨论】:

              【解决方案7】:

              一个很好的例子是 Zend FW 或任何其他 php 框架。目录结构为:

              application/config/config.ini
              library/Zend/
              public/index.php
              

              从网络可以访问公共的地方

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-04-18
                • 2015-11-11
                • 1970-01-01
                相关资源
                最近更新 更多