我开发了一个PHP脚本来替换当前的脚本,这将有很多曝光于各个市场/国家.其他人之间的脚本提供照片上传功能.
经过大量关于这个问题的阅读,我按照下面描述的方法.我非常感谢您对其安全性的评论.
- 照片将上传到Web根目录外的私有777文件夹中.
- 执行对白名单扩展的检查(仅允许jpgs,gif,png),其他所有内容都将被删除.
- 使用getimagesize检查最小 - 最大尺寸和照片有效性.
- 检查mimetype和文件扩展名匹配.
- 将上传的照片大小调整为标准尺寸(使用imagecopyresampled).
- 将创建的文件保存为jpg.
- 删除原始文件.
- 使用新的(非随机名称)即img51244.jpg保存照片.
- 根据不可预测的算法将新照片移动到公用文件夹的变量子目录(777权限).即,
img10000.jpg将储存在photos/a/f/0/img10000.jpg同时img10001.jpg将储存在photos/0/9/3/img10001.jpg.这是出于其他原因(使用子域进行静态内容服务或使用CDN).
该脚本将在Linux专用服务器上运行.