PHP上传功能别只在前端限制后缀,后端不做校验,等于给服务器开了个后门

8年前 (2018-07-22)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

新手做PHP上传功能,图省事,前端选文件的时候只显示图片后缀,后端根本不做校验,结果被人抓包,把请求里的文件后缀改成.php,直接传个一句话木马上来,拿到整个服务器权限。其实上传功能只要做几个基础安全配置,就能挡住大部分木马上传。第一,后端必须做后缀白名单校验,只允许jpg、png、gif这类图片后缀,别信前端的校验,前端随便一改就能传别的文件,后端才是最后一道防线;第二,上传目录在Nginx里配置禁止执行PHP,就算用户传了php木马,访问这个目录里的php文件,也不会被解析执行,直接返回静态文件,木马等于废了;第三,上传的文件别用用户传的原始文件名,随机生成文件名,别让用户传个叫shell.php的文件直接存到服务器;第四,把php.ini里的上传大小限制改对,别用户传个5M的图直接报413错误,大小设到20M足够日常用。

我之前做美食站的头像上传,就只在前端限制后缀,没做后端校验,被人抓包传了个php木马,还好我发现的早,及时删了。很多新手觉得上传功能简单,前端限制一下就完事,结果被人传木马,整个服务器都被控制。这些安全配置都是几行代码的事,但是不做,你的上传功能就是个大门敞开的后门。真的,做上传功能,后端的校验一定要做足,别拿用户传的文件当信任文件。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/3196.html

0
回帖

PHP上传功能别只在前端限制后缀,后端不做校验,等于给服务器开了个后门 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息