5

重複の可能性:
コア クラスを Web ルートの上に置く - 良いアイデアか悪いアイデアか?

MySQL 接続資格情報 (クラス、定義など) を Web ルートの外 (www フォルダーの上) に配置するのがベスト プラクティスであることを読み続けています。

どうしてこれなの?クレデンシャルが .php ファイルにある場合、ブラウザからファイルにアクセスできるかどうかは問題ではありませんよね?

4

3 に答える 3

9

予防策です。誰かが誤って apache サーバーで php 評価を無効にしたり、.htaccess ファイルの apache 設定を変更したりした場合、ファイルはプレーン テキスト ファイルのように提供される可能性があります。または、うっかり php の開始タグを忘れてしまうと、プレーン テキストのように書き換えられてしまいます。あなたがそのようなばかげた間違いを犯すというわけではありませんが、あなたのコードに取り組んでいる将来の初心者が間違いを犯す可能性があります。

それが可能になるのを防ぐことができるのに、なぜ可能なベクトルを開いたままにしておくのですか? 自分の足を撃った (または私のように両足と手を撃った) 他の人のアドバイスに従って、資格情報をドキュメントルートの外に移動してください。

于 2012-12-20T16:27:42.977 に答える
6

ある程度、Web ルートの下にあるものは安全ではないからです。インターネット上で入手できるため、本質的に安全ではありません。

誤って構成されたサーバーが、解釈のために PHP に送信するのではなく、いつの日か PHP ファイルの内容を出力する可能性が常に存在します。また、あらゆる方法でデータベースにアクセスしようとしている人が多すぎます...中には、楽しみのためだけにいる人もいます。

どのような状況でも、利用可能な最も安全な方法を常に使用する必要があります。身につけるのは良い習慣です。

また、Web アプリケーションでルート パスワードを使用しないでください。最小限の権限を持つ特別なユーザーを作成します。

PHPの場合、私は常に.iniファイルを使用して機密設定を保存しています...

<?php
    $config = parse_ini_file('../config.ini');
?>
于 2012-12-20T16:27:05.097 に答える
2

ディレクトリ内www(つまり、Web サイトのルート) は、インターネットからアクセスできる可能性があるためです。

つまり、資格情報をここに入力すると、誰かがそれらにアクセスして、DB に直接接続できる可能性があります。

資格情報をこのディレクトリの外に置くと、この方法でアクセスできないことが保証されます。

于 2012-12-20T16:27:13.130 に答える