2011-08-16 30 views
1

我正在一个Web画廊和上传文件引发了很多安全问题。安全的php上传/显示和cpu加载与php gd

这是我到目前为止有:

上传:

  1. 检查文件类型(仅限JPG/JPEG,TIFF,PNG允许)
  2. 和getimagesize()(A有效图像文件可以有它的php代码,但至少我知道它是一个图像)
  3. 上传运行CamAV病毒扫描。
  4. 将图像存储在Web目录之外。设置的Apache使PHP不能在文件夹
  5. 运行在调整基础上我想要的图像

检索:

  1. 使用GD通过PHP的重建图像

我的问题是,有什么我错过了?此外,很多CPU功能(这是一个非常模糊的问题,但假设我必须为每个用户显示10个图像,每秒100个用户)应用程序将使用gd检索图像。我可以自己测试一下,但听到有经验的人会很高兴。许多图像(超过10个)将显示在每个连接处,这就是为什么这很重要。

+1

如果您将图像大小调整为“上传”步骤的一部分,当您说“通过php重新创建图像”时,您究竟做了什么? –

+0

我正在考虑使用gd来读取文件并将其显示在一个php文件中。 – jjj

+0

由于图像很少用于传播恶意程序,因此您所做的任何AV扫描都是无用的。 –

回答

0

很多人都没有得到你想提供的安全性。良好的工作,即使是真实的图像的评论部分,图像也是恶意软件的来源,所以你是正确的检查。 GD可能会使用更多资源。您可能想要改为使用readfile。读取MIME类型,设置标题,然后输出。这将隐藏它。即使这可能会使用很多资源。另外看看mod_xsendfile,如果你可以安装它,它就像文件传输一样快,并且会做你正在做的事情。 这将有助于:http://blog.insicdesigns.com/2009/01/secure-file-upload-in-php-web-applications/

0

AD.1获取从文件的扩展名,并保存为兰特uniq的名字736217361236123.png AD.4禁用httacess在这个目录

+0

我想随机化从来不是一个好主意,当你想要安全地存储的东西。最好将其存储在网络目录之前,并通过php调用图像 – jjj