0

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

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

4

3 回答 3

1

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

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

事实上,没有什么好担心的(如果你不执行里面的代码——我真的非常怀疑)。

于 2013-06-20T10:10:14.823 回答
0

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

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

如果是我,我会:

1) 确保我的配置不允许在没有 PHP 解释器运行指定扩展的情况下进行任何操作

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

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

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

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

于 2013-06-20T10:26:30.600 回答
0

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

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

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

于 2013-06-20T10:01:41.647 回答