我目前正在实现一个文件上传功能,用来接收客户上传文件,然后工作人员后台查看。
但是,我并不确定客户会上传什么格式的文件。
起初我想直接放开限制,即,不限制用户的上传文件格式。但总觉得不对劲,似乎没有看到过哪个网站允许随意上传文件格式。于是网上查了一下,发现这样做确实非常危险。
不限制文件格式的风险包含哪些
- 上传的 PHP 文件,拿到文件路径之后,允许直接执行。
- 文件名中包含相对路径的情况,例如,"../../etc/passwd",如果不对文件名进行更改的化,可能覆盖系统文件。例如,/etc/passwd。
预防措施
- 自动生成文件名。不使用用户的文件名
- 设置文件类型白名单
- 前后端均检查文件类型
参考
https://juejin.im/post/5d196b196fb9a07ebd48ecb1
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式