私のウェブサイトではBBCodeを私のフォーラムで有効にしていますが、私のユーザーの中にはこれを利用している人がいて、イメージのソースをユーザーに「敬意ポイント」を与えるページにしています。私は、[img]タグの内部にあるURLがウェブページだけでなく、実際のイメージであるかどうかをチェックする方法があるかどうか疑問に思っていました。私はここで "getimagesize"関数が便利かもしれないと思っていましたが、それが実際のイメージであるかどうかをチェックし、後で正規表現でそれを解析できる適切な方法を見つけることができません。私はいくつかの画像が私のウェブサイト上のファイル拡張子を持っていないので、ファイル拡張子をチェックするだけではない。これについての洞察?PHP [Img] BBCodeですが、画像が実画像の場合にのみ表示されますか?
0
A
答えて
0
getimagesize()は行く方法です。それはTIFFだけでなく、ほぼすべての一般的なWeb画像形式をサポートしています。私が考えることができる唯一の例外はSVGです。
さらに、特定のページにアクセスしないようにブラックリストを設定する必要があります。ここ
<?php
function validURL($url){
$bad = array("respect.php","website.com","etc");
/* Check each array element to see if it is in the URL */
foreach($bad as $fail){
if(strpos($url,$fail) !== FALSE){
return false;
}
}
return true;
}
if(validURL($url) && getimagesize($url) !== FALSE){
// Valid image
} else {
// Strip url
}
?>
キーがあること if文validURL()がfalseを返した場合、短い外になります。これにより、getimagesize()が不正なURLにアクセスできなくなります。
関連する問題
- 1. mysqlの画像がPHPで表示されている場合
- 2. Html imgタグでブラウザに画像が表示されません
- 3. 画像が画像ホルダーにアップロードされるまでデフォルト画像を表示
- 4. Androidの画像が画像表示に表示されない
- 5. SVGの画像画像タグはChromeでは表示されませんが、ローカルに表示されますか?
- 6. 画像がフォルダ内にある場合show他の画像を表示
- 7. App IONIC 2の画像に画像が表示されない
- 8. Wordpressで注目画像が設定されていない場合、カテゴリ画像を表示するには?
- 9. ブートストラップカルーセルエラー、アクティブな画像のみが表示されます
- 10. 条件が満たされた場合に画像が表示されます
- 11. 時々、angularJsで画像が表示されない場合があります
- 12. 最初に投稿された画像のみが表示されます
- 13. (画像が表示他の画像を存在しない場合)
- 14. 画像が表示されません
- 15. CWAC2キャプチャのみの画像がプレビューに表示されます
- 16. getImage.phpの画像はimg srcに表示されません
- 17. NicEdit画像はアップロードされましたが、エディタで空白の画像が表示されます
- 18. CSS背景画像に画像が表示されない
- 19. IE7:画像をホバーすると、別の場所に別の画像が表示されます
- 20. base64画像が画像に表示されない
- 21. Wordpress:アタッチメントギャラリーには5つの画像のみが表示されます
- 22. PHPでの画像表示
- 23. フルブラウザウィンドウで画像を表示しますが、画像が大きすぎる場合は縮小します
- 24. 画像がアップロードされていない場合、既定の画像を表示できません。
- 25. 画像がルートディレクトリからPHPで表示されない
- 26. 画像が存在しない場合は表示されます。表示テキスト
- 27. コード画像のios版に画像が表示されない
- 28. ユーザーがクリックすると画像が表示されますか?
- 29. 画像がホバー上に表示される画像
- 30. 画像が存在する場合、ボタン上の画像を表示
あなたは 'getimagesize()'を使うことができますが、それは.tiffイメージなどを含めることはできません。それはJPG、PNGだけをサポートし、私はBMPやGIFを考えています。画像のMIMEタイプに 'image /'が含まれているかどうかを見ることができます。 – Bojangles
すべてのページのロード/リフレッシュで実際のイメージであるかどうかを確認する予定がある場合、それはあなたが考えることができる最悪のアイデアです。あなたの "Respect Points"スクリプトにsessionid/custom parameterチェックを追加するだけです。 – Shocker
短い答え:できません。ホストは、リクエストがあなたから来ているかどうかをチェックし、そうであればあなたにイメージを与え、他のすべてをリダイレクトして投票することができます。この問題を解決する方法は、GET要求によるアクションを許可しないことです。 – Qtax