有没有办法从评论中删除上传的图像?

时间:2013-06-20 09:54:45

标签: php image upload meta

保护我的网站免受评论中包含php的上传文件的最佳方法是什么?

我的网站允许图片上传,此刻只能上传有效图片,但有效图片仍然可以在评论中写入代码。 有没有办法检查图像的评论?或者是我唯一的选择从所有元数据中剥离图像?如果我从元数据中删除我的图像,那将会产生什么后果呢?

3 个答案:

答案 0 :(得分:1)

剥离元数据非常容易(常见的GD扩展名):

$img = imagecreatefromjpeg("uploaded_img.jpg");
imagejpeg($img, "stripped_img.jpg", 100);
imagedestroy($img);

事实上,没有什么可担心的(如果你没有执行里面的代码 - 我真的很怀疑)。

答案 1 :(得分:0)

您可以获取他们添加的评论并在其上运行“addslashes”方法。

http://php.net/manual/en/function.addslashes.php

这样就不会有跨站点脚本或代码注入的风险。

答案 2 :(得分:0)

Quentin部分正确地说,如果你的配置是正确的,那么这些图像不应该由PHP解释器解析 - 但是最好不要依赖单一的防线。

在许多司法管辖区内,(正确地)非法(或至少违反合同)从内容,数字或其他方式删除版权信息。因此故意剥离元数据可能会给您带来很多麻烦。

如果是我,我会:

1)确保我的配置不允许任何没有由PHP解释器运行指定扩展名的内容

2)确保我的应用程序不允许重新命名上传内容的扩展名

3)对图像应用一些变换(旋转/缩放/更改格式)以消除它可能包含的一些恶意软件(例如CVE-2013-1331),保留exif数据

4)将内容保留在文档根目录之外,并通过代理脚本控制访问权限

5)在exif数据中转义任何出现的php开始和结束标记