安全なログインを作成するためのPHPスキルを信頼していないため、作成しているphpスクリプトのディレクトリをパスワードで保護するために.htaccessを使用するつもりでしたが、AuthUserFileの相対パスを使用できないことがわかりました。これを一般化します。
ディレクトリをパスワードで保護するための安全なPHPログインスクリプトを教えていただければ幸いです。ありがとう。
安全なログインを作成するためのPHPスキルを信頼していないため、作成しているphpスクリプトのディレクトリをパスワードで保護するために.htaccessを使用するつもりでしたが、AuthUserFileの相対パスを使用できないことがわかりました。これを一般化します。
ディレクトリをパスワードで保護するための安全なPHPログインスクリプトを教えていただければ幸いです。ありがとう。
できることの1つは、すべての「秘密の」ファイルをサーバーのWebルートの外部のディレクトリに保持することです。これらのファイルへのすべてのアクセスは、ディレクトリ内の単一のPHPスクリプトを介してルーティングできます。このようなもの:
http://www.example.com/protected-directory/access.php?file=/foo/document.doc
次のようなディレクトリ構造の場合:
+--+ /server_root
|
+--+ /web_root
| |
| +--+ /protected-directory
| +-- access.php
| +-- access-denied.html
|
+--+ /protected_root
|
+--+ /foo
+-- document.doc
あなたの中でaccess.php
あなたはこのようなことをするでしょう:
$file = $_REQUEST['file'];
if ($user->hasAccessTo($file)) {
readfile("/server_root/protected_root/$file");
} else {
readfile('access-denied.html');
}
file
ここで、誰もあなたのパラメータをねじ込んで、のようなものを渡さないように注意する必要があります"../../../etc/passwd"
。また、上記の例では、正しいヘッダーを送信することを確認する必要があります。わかりやすくするために、ヘッダーを省略しました。
AuthUserFileへの絶対パスを使用して、Webサーバーにアクセスできない場所にそのファイルを配置するように調整できます。私は何年もそれをしました。正常に動作します。