0

基本的に、画像を除いて、Apache ディレクトリ内のすべてのファイルにアクセスできません。画像にアクセスできる必要がありますが、Web サイトから読み込まれた場合に限ります。リファラーに基づいてApacheルールを設定すると、非常に簡単にバイパスできます: http://www.mustap.com/phpzone_post_62_how-to-bypass-the-referer-se もちろん、それは正しい選択ではありません。

私のApache confファイル:

<Directory /var/www/path>
    Order allow,deny
    Deny from all
    Options -Indexes
    # Check against the referer, first level check
    SetEnvIf Referer domain1\.com domain1
    SetEnvIf Referer domain1\.com domain2
    <FilesMatch \.(jpg|jpeg|gif|png)$>
        Order deny,allow
        Deny from all
        Allow from env=domain1
        Allow from env=domain2
    </FilesMatch>
</Directory>

画像をDBに入れずにこれを解決するにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

確実に知る方法の 1 つはreadfile()、要求された画像をチェックしてから出力するようなものを使用する PHP スクリプトを使用してすべての画像を実行することです。

例: site.com/image.php?name=logo.jpg

スクリプトは、ユーザーがサイトにセッションを持っているかどうかを確認できます。セッションがない場合は、最初にサイトを表示せずに画像を要求していることを意味します (Cookie が無効になっている場合を除く)。

ただし、これにより読み込み時間が長くなるため、実装の費用対効果を考慮する必要があります。

于 2012-03-06T09:08:27.787 に答える