データベースを使用するときに懸念すべき主な問題の 1 つは、アクセス権 (ユーザー名とパスワード) の公開です。プログラミングの便宜のため、通常は db.inc ファイルを使用して保存します。
コードをコピーします コードは次のとおりです:
$db_user = 'myuser';
$db_pass = 'mypass ';
$db_host = '127.0.0.1';
$db = mysql_connect($db_host, $db_user, $db_pass);
?>
ユーザー名とパスワードは機密データであるため、特別な注意。ソースコードに書かれているということはリスクを伴いますが、避けられない問題です。これを行わないと、データベースはユーザー名とパスワードで保護されません。
http.conf (Apache の設定ファイル) のデフォルト バージョンを読むと、デフォルトのファイル タイプが text/plain (プレーン テキスト) であることがわかります。このように、Webサイトのルートディレクトリにdb.incのようなファイルが保存されていると危険が生じます。 Web サイトのルート ディレクトリにあるすべてのリソースには、対応する URL があります。Apache は .inc 接尾辞を持つファイルの処理方法のタイプを定義していないため、このタイプのファイルにアクセスすると、通常のテキスト () の形式で返されます。デフォルトのタイプ ) なので、アクセス権はクライアントのブラウザに公開されます。このリスクをさらに説明するには、Web サイトのルート ディレクトリが /www であるサーバーを考えてみましょう。db.inc が /www/inc に保存されている場合、そのサーバーには独自の URL http://example.org/inc/db が存在します。 inc (example.org がホスト ドメイン名であると仮定します)。このURLにアクセスすると、db.incのソースファイルがテキストモードで表示されます。 /www のどのサブディレクトリにファイルを保存しても、アクセス許可が漏洩するリスクを避けることはできません。
この問題に対する最善の解決策は、Web サイトのルート外の include ディレクトリに保存することです。それらを含めるためにそれらをファイル システム上の特定の場所に置く必要はありません。必要なのは、Web サーバーがそれらへの読み取りアクセス権を持っていることを確認することだけです。したがって、含まれるファイルが Web サイトのルート ディレクトリに配置されている限り、リスクを軽減するための努力は無駄になります。実際、URL を介してアクセスする必要があるリソースを Web サイトのルート ディレクトリに配置するだけで済みます。結局のところ、これはパブリック ディレクトリです。
前のトピックは SQLite データベースにも役立ちます。データベースをカレントディレクトリに保存すると、パスを指定せずにファイル名を呼び出すだけで済むため、非常に便利です。ただし、データベースを Web サイトのルート ディレクトリに保存すると、不必要なリスクが生じます。直接アクセスを防止するセキュリティ対策を講じないと、データベースが危険にさらされます。
外部要因により、すべてのインクルード ファイルを Web サイトのルート ディレクトリの外に配置することが不可能な場合は、.inc リソースへのリクエストを拒否するように Apache を設定できます。
コードをコピーします コードは次のとおりです:
許可、拒否を注文
すべてから拒否
例を挙げたいのですが、このように書くのは理解できますが、結局のところ、この例は少し率直です。実際には、ファイルの名前を db.inc.php に変更するだけです。それは、家に空いた穴を直すのではなく、壊れた家を覆うために外に大きな家を建てるようなものです。
後で、データベース アクセスの公開を防ぐ別の方法についても説明します。これは、共有サーバー環境 (ファイルが Web サイトのルート ディレクトリの外にある場合でも公開のリスクが依然として存在する環境) で非常に効果的です。
http://www.bkjia.com/PHPjc/825124.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/825124.html技術記事データベースを使用するときに懸念すべき主な問題の 1 つは、アクセス権 (ユーザー名とパスワード) の公開です。プログラミングの便宜上、通常は次のように db.inc ファイルを使用して保存します。 コードをコピー...