【问题标题】:MySQL credentials/hosts variables best practicesMySQL 凭据/主机变量最佳实践
【发布时间】:2011-12-10 12:43:55
【问题描述】:

我想知道在为 MySQL 凭据/主机创建变量时最佳做法或建议做什么。

    define('HOST', 'localhost');
    // etc..
   mysql_connect(HOST, // etc...

    $host = 'localhost';
    // etc..
   mysql_connect($host, // etc...

对于两者,您都可以轻松检查声明的变量或常量是什么,也许可以轻松找到值是什么。我有多个用户可以共享和使用的代码。

保护这些变量的最佳方法是什么?

【问题讨论】:

    标签: mysql variables mysql-connect


    【解决方案1】:

    这里有几个解决方案

    1)您给每个用户一个用户名和密码,每个用户在数据库中都有他们的权限(仅选择或插入等)。因此,在您的代码中,您只需包含一个 db.config.php 以便设置所有变量。用户是否回显变量并不重要,因为他们使用自己的变量。

    2) 您可以为数据库提供一个通用的用户名/密码,然后对文件进行编码(使用 custom encoding、zend 优化器或 ioncube 并取消设置变量。这是一个示例代码:

    // file mysql_connect.php
    
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
        or die("cannot connect to database : " . mysql_error());
    
    // then this file is encoded so nobody can view it.
    

    3) 在某个时候,有人会以某种方式找到这些信息。我只是建议信任您的用户(假设这些是开发人员)

    【讨论】:

    • 第二个对于我需要做的事情来说似乎很昂贵,第三个,还没有;)但我喜欢第一个,非常简单和整洁。
    【解决方案2】:

    在您的代码中的某些时候,您将不得不对此类信息进行硬编码,重要的是仅将其保存在一个位置以提高可维护性。 但是,由于您担心安全性,我建议您检查一下:Convert PHP file to binary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-06
      • 2021-11-26
      • 1970-01-01
      • 2010-10-05
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      相关资源
      最近更新 更多