-1

パブリックとメンバーシップの 2 つの領域を持つ単純な PHP Web サイトを作成しました。すべてが順調です。ログインは機能し、ウェブページはすべて非会員ユーザーから保護されています。ただし、メンバー限定の写真などの直接アクセスを保護することはできないようです。写真の完全な URL を直接入力すると、ログインせずに完全に表示できます。つまり、http://www.mysite.com/members/gregs_funny_cat.jpgです。

スクリプトを使用してそのようなアクセスを禁止する方法はありますか? ウェブサイトはウェブホテルにあり、.httpaccess にアクセスできません。

4

3 に答える 3

1

そのようなディレクトリにアクセスできる場合は、イメージを apache-directory の外に置きます。それは親ディレクトリまたはそのサブディレクトリである可能性があります...そこからファイルを開くPHPスクリプトを作成し、ユーザーがログインしているかどうかを確認した後にブラウザに送信します.

于 2012-09-05T14:33:07.667 に答える
0

ファイルがある場合は、ルートフォルダーの外にファイルを配置します。次に、php ラッパーを介してファイルを呼び出します。つまり<img src="files/file.php?id=01341" />、file.php で、ユーザーがファイルを表示する権限を持っている場合は、画像ヘッダーを含むファイルを出力します。テーブルには、トークンに対応する実際の画像 URI が01341あり、これが file.php が読み込んでリクエスタに画像として出力するものです。このようにして、サーバー ファイルの実際の URi は非表示のままになり、すべてのイメージ ロードのアクセス権を確認できます。

于 2012-09-05T14:42:56.337 に答える
0

PHP で画像ファイルを読み取り、適切なヘッダーを持つログイン ユーザーにのみエコーすることができます。何かのようなもの

if($userLoggedIn)
{ 
    $f = file_get_contents("path/to/jpeg/file.jpg");

    header('Content-Type: image/jpeg');
    echo $f;
}

@Lex コメントが示唆するように、webroot フォルダーの上に配置する必要があります。

于 2012-09-05T14:32:20.083 に答える