1

次の.htaccess内部uploadディレクトリがあります。

order allow,deny
deny from all

許可したいのです<img src="upload/image.png" />が、禁止エラー (403) が発生します。

直接アクセスを拒否し、html の「包含」(通常の html) を許可するにはどうすればよいですか?

4

3 に答える 3

1

何を達成しようとしていますか?ここで行われているのと同様の手法を使用して、画像を base64 エンコードし、img タグの src 属性自体の内部に配置できます: http://www.greywyvern.com/code/php/binary2base64

画像データを隠すためのより高度な方法があるかもしれませんが、最終的には、ハッキングしようとする誰かからそれを守ることはできません.

于 2012-05-11T17:54:24.977 に答える
1

mod_rewrite をオンにする必要があります。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]

「mydomain.com」を自分のものに置き換えてください。

于 2012-05-11T17:41:10.957 に答える
1

できません(確実に)。

直接表示するか<img>タグとして表示するかに関係なく、ブラウザは にリクエストを送信しhttp://yoursite.example.com/upload/image.pngますが、サーバーに関する限り、2 つのリクエストは基本的に同じです。

現在、ほとんどのブラウザでは、タグからのリクエストにHTTP ヘッダー<img>が付随します。これを Apache 設定で使用して、これらのリクエストをフィルタリングできます。ただし、次のようになります。Referer:

  • これはイメージを保護しません。イメージを取得しようとしている人なら誰でも、たとえばコマンド ラインから追加できます。curl -e 'http://my_referer.example.com' 'http://yoursite.example.com/upload/image.png'
  • ユーザーが Web ページ経由で画像を表示した後、アドレス バーに URL を入力すると、画像はブラウザー キャッシュから提供される可能性が高く、サーバー構成に関係なく表示されます。
于 2012-05-11T17:48:57.250 に答える