0

サーバー上の他の関数がグローバルMySQLデータベースに接続するために使用するPHP関数があります。

function connect_to_mysql_db() {

$con = mysql_connect("localhost", "user_name", "password");
if (!$con)
   {
      die('Could not connect: ' . mysql_error());
   }
mysql_select_db("db_name", $con);

}

この関数と他のほとんどの関数を保持するファイルは、BlueHost サーバーの次の場所にあります。

/home3/username/includes/scripts.php

データベースは現在、電子メール アドレスのリストを含む 1 つのテーブルのみを保持しています (私のサブスクライバーのアドレス...) データベースが安全かどうかを知りたいだけです (私のサブスクライバーのために)

そうでない場合、他のアイデア (暗号化?) はありますか? 通常は一方向であるため、HASHINGが機能しないことはわかっています...

編集

参考: /includes/ディレクトリは/public_html/ではありません

結論

私を助けてくれたすべての人に感謝しますが、正当な理由もなく負債が多すぎると判断したため、データベースに安全なものを保存することはありません. 代わりに、外部サービスを使用します。

乾杯!

4

3 に答える 3

2

これにより、追加のセキュリティが得られるとは思いません。誰かがサーバーをハッキングし、スクリプトを読み取ってデータベース資格情報を取得し、mysql にログインし、mailadressen を読み取り、暗号化されたデータのみを取得した場合、おそらくスクリプトをもう一度調べて復号化キーを取得します...

したがって、これにより安全性が向上することはないと思います。サーバーへのアクセスを防ぐために、安全な環境を作成することに集中することをお勧めします;-)

于 2012-07-15T15:16:17.117 に答える
1

安全性は十分だと思います。とにかく、もっと欲しい場合は、次のようにしてみてください。

$crypted = openssl_encrypt ('myemail' ,'AES256', 'mypass')

その後

$decrypted = openssl_decrypt ($crypted, 'AES256', 'mypass')

ここを参照 してください。

于 2012-07-14T19:59:15.687 に答える
-2

メールアドレスを AES 暗号化できます。すなわち:

$query = "INSERT INTO (table) AES_ENCRYPT('$email', '$salt')..."

メールを通常のテキストに戻すには:

$query = "SELECT AES_DECRYPT('email', '$salt') FROM (table) WHERE 1..."

$salt は、変数に入れるランダムに生成されたキーになります。

データベース テーブルの列は BLOB である必要があります。

于 2012-07-14T19:57:53.827 に答える