2017-12-08 7 views
0

ここに質問があります。 phpスクリプトがどのように呼び出されているかを検出できますか?たとえば、<img>で呼び出された場合は画像が返され、<video>で呼び出された場合はビデオが返され、<audio>で呼び出された場合は音声が返されるか、http://www.example.com/callme.phpで直接呼び出された場合テキストが返されます。phpがsrcから呼び出されたかどうかを検出しますか?

このcallme.phpからのコンテンツは、以下の方法によって提供される。

header("Content-Disposition: attachment; " 
.sprintf('filename="%s"; ', rawurlencode($_REQUEST['F'])) 
.sprintf("filename*=utf-8''%s", rawurlencode($_REQUEST['F']))); 
header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download"); 
header("Content-Description: File Transfer");    
flush(); // this doesn't really matter. 

$fp = fopen($file, "r") or die("DEAD"); 
while (!feof($fp)) 
{ 
    echo fread($fp, 65536); 
    flush(); // this is essential for large downloads 
} 
fclose($fp); 
+1

は、以下のPHPで、次のHTML

<img src="/callme.php?target=img" /> 

を考えてみましょうか?あなたは何をしようとしているのですか? – Progman

+0

@Progmanリソースがどのようにロードされたかによって、アクセスを拒否したいと考えていました。 – Edward

答えて

0

いいえこれは、少なくともしないURLにいくつかの追加のパラメータを指定せずに、不可能です。あなたは、このような要件が必要なのですなぜ

if ($_GET('target') == 'img') { ... } 
+0

ダーン...それは、誰も手作業で 'callme.php?target = img'をタイプし、テキストではなく画像を得ることができるということです。 – Edward

+4

あなたがこれをやりたい理由がセキュリティに関連しているなら、あなたは物事を完全に間違った方向に進んでいます... –

関連する問題