25

MySQLクレデンシャル/ホスト用に変数が作成されるときにベストプラクティスまたは推奨されることを知りたいです。

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

vs

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

どちらの場合も、宣言された変数または定数を簡単に確認でき、値を簡単に見つけることができます。複数のユーザーが共有して使用できるコードがあります。

これらの変数を保護するための最良の方法は何ですか?

4

2 に答える 2

31

ここにいくつかの解決策があります

1)各ユーザーにユーザーとパスワードを与え、各ユーザーはデータベースでの権限を持ちます(選択または挿入などのみ)。したがって、コードに db.config.php を含めるだけで、すべての変数が設定されます。ユーザーは独自の変数を使用するため、ユーザーが変数をエコーするかどうかは問題ではありません。

2)データベースに共通のユーザー名/パスを指定してから、ファイルをエンコードします(カスタムエンコーディング、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) ある時点で、誰かが何らかの方法でこの情報を見つけることができます。ユーザーを信頼することをお勧めします(これらが開発者であると仮定します)

于 2011-10-21T16:31:00.083 に答える
1

コードのある時点で、この種の情報をハードコーディングする必要があります。重要なことは、保守性を高めるために、情報を 1 か所だけに保持することです。ただし、セキュリティが心配なので、これを確認することをお勧めします: PHP ファイルをバイナリに変換する

于 2011-10-19T00:37:10.510 に答える