1

我需要一些帮助来确定我的代码是否安全。这是我基于 url 重写调整图像大小的函数。

URL重写代码......在(。*)里面有一个字符串,告诉产品的名称......我使用这种方法进行搜索引擎优化,图像托管在不同的服务器上,因为我有多个网站,并且图像也将调整大小以具有更小的文件大小。

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

我认为两个基本检查是有序的。

首先你应该标准化你的名字,(这是我的谦虚提议)并允许只说字符和下划线(没有数字和其他特殊字符)并在你的 p 参数中检查该模式。因此,您将免受“../..”攻击。

其次,您的问题有些不清楚,我认为可能存在循环?那是您的服务器会不断尝试获取图像,而不是获取图像,而是将其定向到您提供的代码,然后再一次?(它可以拒绝你的服务器)。

于 2012-12-25T20:46:05.810 回答
0

我认为它是安全的,但是你可以提高性能。最好多占用一点磁盘空间,并保存每次切换时调整大小的图像。

您可以在第一次请求图像时保存,之后只显示保存的文件。这是一个例子: http: //pastebin.com/2kzga4Zs

于 2013-01-18T00:53:33.337 回答