1

Web サイトのユーザーが画像をアップロードできるようにしてから、PHP スクリプトを使用して画像を提供します。ただし、これは静的リンクよりも著しく遅くなります。

PHP を使用して画像を提供する理由は、画像を保存するフォルダーに人々がアクセスできないようにするためです。

.htaccess ファイルを使用する必要がありますか? httpd の ALIAS についても考えていますが、これを利用する方法や、それが適切かどうかはわかりません。これを使用してルート外のフォルダーを参照できますか?

どんな助けでも大歓迎です。

ありがとう

header("Content-type: " . filetype($file) . "\n"); header("Content-Disposition: inline; filename=\"{$image}\"\n"); header("Content-Length: ".(string)(filesize($file))); @readfile($file);

4

2 に答える 2

4

Options -Indexesタグ内で使用して、Directoryインデックスを無効にします。ただし、これよりも一歩先に進む必要があります。

セキュリティと一般的なファイルシステムの衛生状態のために、アセット (画像など) をコードとは別のディレクトリに保管する必要があります。

次に、これを apache config に追加できます。

<Directory /directory/where/assets/are>
    Order Allow,Deny
    Allow from all
    Options None
    AllowOverride None
    <IfModule mod_php5.c>
        RemoveHandler .php
        RemoveType .php
        php_flag engine off
    </IfModule>
</Directory>

これにより、アセット ディレクトリ内のスクリプトとしてのファイルの実行が無効になり、ファイルのリストが無効になりますが、誰でもこれらのファイルをダウンロードできるようになります。ユーザーがアップロードしたファイルを含むディレクトリをこの方法で保護することが重要です。これらのファイルは悪意のある php スクリプトをアップロードし、ホストできるようになる可能性があるからです。

于 2012-04-24T22:40:45.923 に答える
3

次の 1 行で .htaccess ファイルを使用します。

IndexIgnore *

その後、ユーザーはフォルダーにアクセスできますが、フォルダー内には何も表示されません。

または、という名前のファイルを追加しますindex.htmlが、空白のままにします (または、「このページは表示できません」というメッセージを含めます)。

于 2012-04-24T20:24:22.250 に答える