14

重複の可能性:
PHPでデータベースのパスワードを保護する方法は?

最近、PHPで行われるはずのWebサイトプロジェクトが与えられましたが、PHPの経験はあまりありません。とにかく、それは稼働していますが、改善の余地があります。私が気分が悪いのは、データベースの扱い方です。データベース接続情報を別のdb.phpファイルに入れ、必要に応じて含めます。しかし、サーバーから返されるPHPソースファイルを何度も見たのを覚えています。

だから今私の質問は:データベースの機密データを置くためのより良いまたは最良の方法/場所は何ですか?

ちなみに、問題が発生したときにPHPがWebページにエラーメッセージを表示しないようにするにはどうすればよいですか?php.iniのどこかにカスタムエラーページまたは設定がありますか?ありがとう!

注:私は、オブジェクト指向ではなく、古いフレーバーでPHPを使用しています。しかし、将来のプロジェクトに備えるためのより良いアプローチがあれば、私はオブジェクト指向またはMVCの方法を受け入れます

4

3 に答える 3

9

これがあなたが探しているものであるかどうかはわかりません
。機密データをdb.phpに入れることができますが、Webルートディレクトリ(public_htmlまたはwww)の外に置くことができます。

たとえば、Webルートディレクトリの兄弟であるconfigというディレクトリを作成し、そこにdb.phpファイルを保存することができます。

次のようにdb.phpファイルを含めることができます。

require_once('../config/db.php');

これがお役に立てば幸いです。

于 2012-04-16T14:44:26.487 に答える
2

私は個人的にdb.phpというファイルを作成し、これをサーバーのpublic_htmlフォルダーの上に配置します

例えば

<?php
    error_reporting(0);
    $link = FALSE;
    $link = mysql_connect('hostname', 'username', 'password');
    if ( ! $link)
    {
        die("Couldn't connect to mysql server!");
    } else {
        mysql_select_db('databasename');
    }
?>

これにより、データベースへの接続と同時にエラー報告がオフになります。index.phpから、次のようにファイルをインクルードします。

<?php require('../db.php'); ?>
于 2012-04-16T14:53:33.140 に答える
1

require_once()各ドキュメントの開始<?phpタグの直後に使用して、db.phpファイルに入れるのは問題ありません。

basedir制限が有効になっていない場合は、db.phpファイルをweb / ftpルートの外に移動して、http/ftp経由でアクセスできないようにします。ただし、このファイルに権限が適切に設定されていることを確認してください。

コードにOOPまたはMVC構造を使用していないため、これが最適なルートです。

于 2012-04-16T14:44:26.740 に答える