0

こんにちは、私は php をまったく初めて使用しますが (私は文字通りそれについて何も知りません)、中級から上級のプログラマーであり、私が運営する非営利団体のメンバーがアクセスできるように、サーバー上のフォルダーまたは個々のファイルをパスワードで保護する必要があります。 . 私のサーバープロバイダーは、私のために彼のサーバーにphpをインストールしました(彼はApacheを持っていません)が、彼はそれに慣れていないため、すべてのプログラミング作業を行う必要があると私に言いました。

1)サンプルスクリプトと実装方法の指示を入手するための良いソースをお勧めしてください

2) または、サーバー上のフォルダーまたはファイルを保護するために何をする必要があるかについて、段階的な「ガイド」を提供してください。限られた数のメンバーが選択したユーザー名とパスワードを入力するためのポップアップ ウィンドウまたはその他の手段を用意したいと考えています。ほとんどのファイルは Web ページですが、一部はダウンロード可能な PDF です。

私がここで見つけたものはすべてコードの小さなスニペットであり、php プロセスの全体像を説明するものではありません。

私の質問が一部の情報や不十分な情報を混乱させている場合は申し訳ありません。でもコメントありがとうございます。

私はサーバーの所有者ではないことをご理解ください。私は、このサーバー スペースに自分の Web サイトがあり、FTP アクセスできる個人にすぎません。それが理にかなっている場合、その男はそれがマイクロソフトベースであると言ったと思いますか? 彼は私が読んだものから理想的だったであろうApacheを持っていなかったので、それが役立つかもしれないと思ったので、私のためにphpを追加しました。メンバーが参加または脱退するときに、ユーザーとそのパスワードの追加/削除に煩わされたくないと思います。アイデアは、私がそのコントロールと能力を持つことです。

php 以外に何か他の方法がある場合は?

@jerrygarciuh の提案は、私が実装できるよりもはるかに複雑なようです! ;)

4

2 に答える 2

1

ファイルを保護するために使用できる 1 つの方法は、

1) ドキュメント ルートの上にファイルを保存して、直接 http アクセスできないようにします。

2) ユーザーを認証し、ユーザーのステータスまたはアクセス レベルをブラウザー セッションに保存します。

3) データベースを使用してファイル名と場所を保存する

4)ファイルのデータベースIDを取得して場所を検索し、保存された場所や実際に保存されたファイルの名前を明らかにすることなく、承認されたユーザーにファイルを渡すPHPスクリプトへのリンク。

このような方法で渡されたファイルを示す小さなコード スニペットを次に示します。

if ($bd->file) {    
    $file = "$bd->barge/$bd->file";
    if (file_exists($file)) {
        $namePartArray = preg_split('/\./', $bd->file);
        $lastIndex = count($namePartArray) - 1;
        $extension = strtolower($namePartArray[$lastIndex]);
        header('Content-type: application/$extension');
        header('Content-Disposition: attachment; filename="'.$bd->file.'"');
        header('Content-Length: ' . filesize($file));
        readfile($file);
    } else { // if file
        echo "File not found.";
        exit;
    }
} // if file
于 2012-08-17T21:27:39.587 に答える
0

問題は、PDFをロードする前にPHPスクリプトを直接使用してセッションなどをチェックできないことです。

簡単な注意は、曖昧さにも決して依存しないことです。したがって、ファイルをデータベースに入れてランダムに変更するような答えは、良い考えではありません。

必要なのは、ユーザーがページに入らないようにすることです。つまり、これを行う最も妥当な方法は、web.config(IISの場合)などの構成ファイルを使用するか、ドキュメントルートの上にファイルを配置することです。ただし、これについてはもっと多くの情報が本当に必要です。

于 2012-08-17T21:11:45.820 に答える