-
答案 1:
最安全的做法是,强制后缀名,而不要使用用户上传文件的后缀名,比如先判断下是不是jpg后缀,是则强制保存文件名后缀为jpg,不是的话禁止上传。不要使用mime-type进行检查,可以很轻松绕过的。 -
答案 2:
禁止上传目录的PHP解析,避免通过成为webshell;
通过clamav对上传文件进行扫描,避免其它用户下载到病毒,遏制病毒传播;
-
答案 3:
对于文件的类型,大小进行限制,前者需要php代码实现, 后者可以通过php.ini控制, 如果对于安全性要求很高, 得做个客户传递的文件名永远都是不可信任的假设, 然后对上传的文件mine-type进行检查, 因为恶意的文件经常会被伪装成无辜的文件. -
答案 4:
强制后缀名,判断后缀名与上传的mine-type是否一致(不一致就可判断是伪装的),如果是图片格式,检测文件头。上传后强制重命名 -
答案 5:
1. 文件类型校验,不能只检查文件名(比如对后缀名做一个正则表达式匹配是不够的,不管是黑名单还是白名单,mime-type检查是第二道防线,文件头检查是第三道防线),不安全的文件类型一律禁止上传。防止被上传webshell、恶意代码。2. 文件名清洗(接受数据时的临时文件名随机化、存储在文件系统上的文件名随机化、存储在数据库中的文件名要各种转义)。防止各种注入攻击、XSS。3. 检查文件大小。防止DoS攻击。4. 做好Web服务器安全加固。例如防止基于Web服务器运行环境的DoS攻击(例如Slowris、POST DoS等),上传文件目录的访问控制授权等。
PHP 文件上传安全需要注意哪些方面?
2012-01-19 19:34:17 来源: 点击:
相关热词搜索:
上一篇:iPhone 又找不到了,有什么 App 能让它响么?
下一篇:微软以 80 亿美元收购 Skype 的意图是什么?值吗?