1

これはばかげた質問かもしれませんが、オンラインで答えを見つけることができませんでした。何年もの間、私は常に新しい mysql データベースに不可解な名前を付けてきました。通常、サイトごとに 1 つのデータベースしか持たないため、"x7s9u3or8wj" という不可解な命名規則を使用するのは難しくありません。私は常にセキュリティについて心配していましたが、暗号化された方法でデータベースに名前を付ける必要があることを示す具体的なデータはありませんでした.

現在、複数のデータベースを必要とする Web サイトを構築しています。不可解な命名を使用すると、_users _content _common のような命名スキームを使用する場合と比較して、物事が難しくなります。

データベースに一般的な単語を使用して名前を付けると、セキュリティ上のリスクがありますか? ユーザー名とパスワードは常に暗号化されており、安全です。

ありがとう!

4

3 に答える 3

5

データベースにわかりやすい名前を付けます。不可解な名前は、セキュリティ上の問題を解決したり、貧弱なコードを SQL インジェクションに対して脆弱にしたりすることはありません。SQL 呼び出しに挿入できるようになると、DB 名を見つけることができます。

非常に広く普及している CMS システムを使用している人々は、DMS とテーブルの名前を変更して、よく知られたエクスプロイトを試みるクローラーを混乱させようとすることがありますが、これは 1 回限りのシステムでは問題になりません。

于 2012-09-22T14:49:42.790 に答える
0

個々の DB の ID、名前、およびその他のデータをすべて保持するマスター データベースに 1 つのテーブル (masterDB) があります。新しいデータベースがセットアップされるたびに、マスター DB テーブルは新しいレコードで更新されます。次に、そのレコード ID が新しいデータベース名に追加されます。

 masterDB.acct_id=1
 masterDB.acct_id=2
 etc, this table would hold the account name as well as the ID which is auto_incremented with each new record.

次に、それぞれの新しいアカウント データベース名は、標準のプレフィックスで動的に命名され、マスター DB ID が追加されます。

acctDBName_1, acctDBName_2 etc..

マスター DB は、サブに関するデータを検索するときに参照できます。サブには、各サブの目的に関連するデータのみを含めることができます。幸運を。

于 2012-09-22T16:00:53.107 に答える
0

データベースに暗号化された名前を付けることは、難読化によってのみセキュリティを向上させることができます。これは現実的なセキュリティ機能ではないため、あまり役に立ちません.

とにかく、レイが言うように、コードにデータベースへのアクセスを許可する可能性のある脆弱性がある場合、データベース名は引き続き知られています。

セキュリティ対策は、MySQL サーバーを他のユーザーと共有し、そこに何を保存したかを知られたくない場合にのみ機能します。

安全なパスワードを使用することは非常に優れています。

スクリプトは DB パスワードを平文で保存することに注意してください。そのため、アプリケーション スペースを他のユーザーと共有する場合は、DB パスワードを保存するファイルにアクセスできないようにしてください。また、DB 接続の確立後に実行時にパスワード情報を削除するなど、他のセキュリティ対策を試すこともできます。

つまり、PHP では次のようになります。

$db = "someCrypticPassword";
$conn = mysql_connect($host, $user, $pass, ...);
$db = "no-real-password";
于 2012-09-22T14:56:15.460 に答える