0

Image を生成する php ファイルがあり、次のように image タグに含まれています。

<img src"generate_contact.php?memberid=3456">

これで、誰かが memberid クエリ文字列を使用してこのファイルに直接アクセスしようとすると、生成された画像ファイルが実際に表示されます。

への直接アクセスを防ぐにはどうすればよい "generate_contact.php"ですか?

注: この img タグが挿入されているファイルに定数を作成しようとすると、generate_contact.php はその定数にアクセスできますか? generate_contact.php が含まれていないのでお尋ねします。画像タグのみに src として追加されています。

よろしく

4

4 に答える 4

1

増分メンバー ID を使用してこのイメージにアクセスする代わりに、一意のハッシュを使用しないのはなぜですか?

メンバー テーブルに「ハッシュ」フィールドを追加し、メンバーごとにこのフィールド内にランダムな文字列を追加します。

私はこの方法で10文字のハッシュを生成することに慣れています:

$hash = substr(str_shuffle(base_convert(str_shuffle(sha1(str_shuffle(md5(rand() . microtime())))), 16, 36)), 0, 10);

その後、ハッシュを使用してメンバーを識別します。

<img src = "generate_contact.php?memberhash=0qxv(...)"/>

このような方法では、クローラーは ID をインクリメントして、メンバー全体の連絡先を取得することができなくなります。

于 2012-11-10T08:43:33.747 に答える
0

ユーザーに表示したい画像への直接アクセスを防ぐ方法はありません。持つことによって:

<img src = "generate_contact.php?memberid=3456">

ページが読み込まれると、ユーザーのブラウザーは実際にファイルに対して GET 要求を行うため、既に直接アクセスを許可しています。ユーザーに表示したい画像に直接アクセスできないようにすることは、ユーザーが公開文書を要求するインターネットの基本に反します。

于 2012-11-10T08:39:30.090 に答える
0

ページ内に配置する画像を要求するユーザー ブラウザは「get」要求であり、アドレスを直接入力する場合と同じです。もちろんフラッシュを使用しない限り、実際にページに画像を配置してから完全にアクセスできないようにする方法はありません

于 2012-11-10T08:41:18.967 に答える
0

わかりました、一歩戻してください。

それはすべてURLに関するものです。image 要素の src 属性に URL を入れる場合、その URL で画像を利用できる必要があります。

<img src="/img/profile/42.jpg">

ブラウザは、このイメージ要素を含む HTML ドキュメントをダウンロードし、最初のリクエストと同様に、その URL に対して別の HTTP リクエストを作成して、画像もダウンロードします。

同じ効果を得るために、その URL をブラウザのアドレス バーに直接入力できます。一部の URL で特定のコンテンツを利用できます。その URL へのアクセス方法は問題ではありません。HTMLドキュメントにあるため、「HTMLドキュメントに関連付けられている」、「秘密」、「隠されている」、またはそのようなものではありません。

URL は常に公開され、「直接」アクセスされます。それ以外の場合、だれもコンテンツを見ることができません。

したがって、URLgenerate_contact.php?memberid=3456が画像を吐き出すか吐き出さないかのどちらかです。舞台裏で何をするかは関係ありません。

于 2012-11-10T08:42:25.310 に答える