1

コードが安全かどうかを判断するための助けが必要です。これは、URL の書き換えに基づいて画像のサイズを変更するための関数です。

URL書き換えコード...(。*)内に製品の名前を示す文字列があります...そして、私はこの方法をSEO目的で使用しており、複数のWebサイトがあるため、画像は別のサーバーでホストされています、画像のサイズも変更され、ファイルサイズが小さくなります。

RewriteRule mypic/(.*)/demo.gif$ preview.php?p=$1

PHP コード . 各製品には、名前に由来する SEO 目的で作成されたプレビュー画像を含む独自のフォルダーがあります。何かのようなもの

「www.mywebsite.com/products/eye-glasses-diesel/preview.gif」

これは、PHP に渡されるデータになります。products/eye-glasses-diesel/

.

<?php
$src = 'http://www.mywebsite.com/'.$_GET['p'];
if (!$img = imagecreatefromgif($src."/preview.gif")){
    $img = imagecreatefromgif('http://www.mywebsite.com/na.gif');
}
// some image processing code like resizing,etc
// ......
header("Content-Type: image/gif"); 
imagegif($img); 
// Remove image 
imagedestroy($img);
?>
4

2 に答える 2

0

2 つの基本的なチェックが適切であると思います。

まず、名前を標準化し(これが私の謙虚な提案です)、文字とアンダースコアのみを許可し(数字やその他の特殊文字は不可)、p パラメータのエントリでそのパターンを確認する必要があります。したがって、「../..」攻撃から保護されます。

第二に、あなたの質問はやや明確ではなく、ループの可能性があると思いますか? つまり、サーバーは常に画像を取得しようとしますが、画像を取得する代わりに、提示されたコードにリダイレクトされ、もう一度 ? (サーバーに DoS を実行する可能性があります)。

于 2012-12-25T20:46:05.810 に答える
0

はい、安全だと思いますが、パフォーマンスを向上させることができます。もう少しディスクスペースを取り、切り替えるたびにサイズが変更される画像を保存することをお勧めします。

画像が初めて要求されたときに保存し、その後は保存されたファイルのみを表示できます。例を次に示します: http://pastebin.com/2kzga4Zs

于 2013-01-18T00:53:33.337 に答える