0

現時点では、config.phpファイルをinclude folder Apacheサーバーのに配置しています。これにより、ディレクトリパスを記述しなくても、ファイルに簡単にアクセスできます。これは安全であり、パブリックルートフォルダの外部から到達できないため、これは良い考えだと思います。

ファイルの作成方法を教えられなかったconfig.phpので即興で作ったのですが、間違った方法で行われたようです。(今はそれほど安全ではありません)。次に、これらの構成ファイルを正しい方法で構築する方法についてのチュートリアルを探し始めましたが、チュートリアルごとに独自の方法がありました。配列を使用して実行したものもあれば、構成変数を定義して実行したものもあります。クラスを使用する他の人..正しい方法はないかもしれませんが、私は安全で非常に機能的なシステムが機能することを望んでおり、それがどれほど高度になるかは本当に気にしません。

これは私の現在の構成ファイルです。これは決して安全ではないことが簡単にわかります。誰かが変数をエコーし​​て接続を読み取ることができる可能性があるためです。

<?
$main_host = 'db01.server.local'; // There may be db02, db03 etc.
$main_psw = '********';
$main_host_end = '.server.local'; // makes it possible for me to connect to a different datastore only knowing the subdomain.

// ***    USERS    *** //
$w_user = 'w_user';
$xr_user = 'xr_user';
$r_user = 'r_user';
$w_server = 'w_server';
$w_db_admin = 'dbw_admin';

// ***    DATABASES    *** //
$db_accounts = 'accounts';
$db_server = 'server_setup';

// ***    DB ACCOUNTS    *** //
try {
    $w_accounts = new PDO("mysql:host=$main_host;dbname=$db_accounts", $w_user, $main_psw);
    $w_accounts->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

try {
    $r_accounts = new PDO("mysql:host=$main_host;dbname=$db_accounts", $r_user, $main_psw);
    $r_accounts->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

// ***    DB SERVER SETUP    *** //
try {
    $w_server = new PDO("mysql:host=$main_host;dbname=$db_server", $w_user, $main_psw);
    $w_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

try {
    $r_server = new PDO("mysql:host=$main_host;dbname=$db_server", $r_user, $main_psw);
    $r_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}


?>

だから..直接質問する。config.phpファイルを作成する正しい方法は何ですか?また、他の人にも知ってもらいたいと思います。

編集私はまた、これがすべてではないかもしれないことを強調する必要があります..私は作るためにさらに接続があるかもしれません..とだけでaccountsなくserver_setup

4

2 に答える 2

0

あなたが信頼していない誰かがあなたのプロジェクトでコードを書いている場合、いずれにせよ、あなたは大きな問題を抱えています。したがって、変数のエコーは問題ではありません。したがって、あなたの唯一の関心事は、Web ブラウザーを介してアクセスする誰かから PHP 構成を保護する方法です。そのために、すべての構成ファイルをディレクトリに配置し、次の内容のファイルをconfigs/追加することをお勧めします。.htaccess

Options -Indexes
<FilesMatch .*\.php$>
  order deny,allow
  deny from all
</FilesMatch>
于 2013-02-08T10:27:01.263 に答える
0

まず、本番環境で例外メッセージをエコーし​​ないでください。代わりに、読み取り可能なログファイルに入れます。

多くの MVC フレームワークを見ると、それらの php 構成ファイルは、ファイルの最後に返される配列のみで構成されています。

これらの構成ファイルへのアクセスを制限するには、.htaccess を介して「すべて拒否」を使用します。

于 2013-02-08T10:17:45.540 に答える