【问题标题】:how to store mysql connection string如何存储mysql连接字符串
【发布时间】:2010-12-07 18:46:44
【问题描述】:

目前我将连接数据存储在 php 文件中。但就像最近在 facebook 上发生的那样,php 文件未经处理就出现在屏幕上,为了避免这种情况,他们还有其他选择吗?

【问题讨论】:

    标签: mysql connection-string database-connection


    【解决方案1】:

    将包含连接字符串的文件例如:connect.php 放在 webroot 文件夹之外。

    【讨论】:

    • 我在共享主机上,我将如何访问该文件
    • 将文件放在public_html之外,并使用相对路径访问文件,即../connect.php
    【解决方案2】:

    如果您担心,请添加一个 htaccess 异常,使“连接字符串”文件无法从 Web 访问。

    重写规则 /path/to/dbsettings.php /index.php [NC]

    我相信这是正确的,虽然在 htaccess 领域有点生疏。任何大师都可以随时纠正我。

    【讨论】:

      【解决方案3】:

      将您的私人连接信息存储在文档根文件夹之外的文件中,并使用 require_once 加载它。

      这样,如果出现问题,用户将无法前往 http://yoursite/db.config.php 并下载您的文件。

      【讨论】:

      • 我正在使用共享主机...所以你的意思是我需要将文件放在 public_html 文件夹之外?
      【解决方案4】:

      我们的解决方案是保留一个很小的 ​​my.cnf,只定义了 [client] 部分。 大多数 MySQL 连接器都有一个“read_defaults_file”指令,允许您直接使用该文件。

      然后您可以将该文件置于安全状态,如果用户没有获得该信息的授权,脚本将在该行失败。

      如果您至少使用 php5,mysqli::options 完全符合我在指定 MYSQLI_READ_DEFAULT_FILE 时的描述。在较旧的 php 版本上,看起来内置的 parse_ini_file 将完成解析的技巧。

      这种方法的优点是与 Perl、Python 和 C 兼容,因此如果您的数据库信息发生变化,您只需更新一个文件,所有应用程序都会保持同步。

      【讨论】:

      • .ini 文件无法直接访问?
      • .ini 文件可直接访问。
      猜你喜欢
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 2015-12-02
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多