图片上传功能的需要关注什么?
|
admin
2026年11月9日 22:7
本文热度 338
|
上次我们聊了个人中心修改用户信息的需求。里面的每个属性都对应着一个可以深入探讨的技术。涉及了图片上传、邮箱、手机短信认证等。由于时间有限没有一次行聊完,而且一次行写完也不好消化,打算分几次处理。 在软件开发的过程中,我们往往也会遇到一个需求,里面会有很多技术你没有接触过,可能开始会本能地害怕,觉得自己完成不了。早期没有AI的时候,我们这些老程序员员也经历过。那时信息没这么发达,解决一个自己不熟悉的问题,确实需要花费一番功夫。一般都是经历网上搜索,贴吧发贴求助,最后不行了再看源码,最终也总能解决。现在会容易很多,借助AI就行了。 本次先不编码,一般需求分析完成后,还需要进行可行性分析,技术方案设计。本次先看下“修改头像”涉及的技术方案。 当前修改头像的前端页面如下,只支持填写头像地址,没有图片上传功能。 参考下其他网站,上传图片的功能有上传的按钮,且上传后可以预览,如下图所示 Fudy Shop网站的商品图片都是存储在自己搭建的minio里。如下所示是本地minio的控制台,里面我存储了一些商品的图片,放在imge这个Buckets里。 不过之前的图片都是我手动上传的,商品发布的功能还没有开发。所以到现在为止,也没有图片上传的功能可以复用。就趁着这个机会,开发一个可以复用的图片上传能力。 开发图片上传功能需要注意什么?这个可以求助AI,以下是DeepSeek返回的答案,大家可以参考下。第一条,是防止用户上传假图片的,比如把html后缀改为jpg,如果前端代码没有做安全防护,网站就会受到攻击。不过这条在问AI前,我还真没想到。我突然想到的攻击场景可能是,黑客把一段html里包含alert('你好,你已经被我控制')这种html代码改个后缀,当图片上传到网站。然后在商品评论里留言,商品评论页面渲染头像后运行了该头像的代码,别的用户可能就会看到“你好,你已经被我控制”这样的弹窗。当然代码可能其他有真实攻击意图的脚本,我这里的只是臆想的恶作剧。但确实可能有这个风险。第二条,这个没问题,文件名随机生成即可,还可以防止重复。第三条,这也是一种安全攻击了,需要保障这图片是你上传的,而不是其他人上传的。第四条,这条我也没想到,不清楚会不会,不过感觉很少有网站处理这个。第五条,这个是必须的,不然我们后端会被打爆,磁盘也会有很大浪费。上面说的都是后端需要注意的,DeepSeek还列了前端需要注意的第六条,这个不错,可以防止用户错选,减少服务端存储空间的浪费。第七条,这个没想到,到时候开发的时候有问题再处理下。第九条,这个我清楚,不过比较费钱,先用minio+nginx本地免费版,直接用oss+cdn比较费钱。看完这些注意的问题,感觉上传图片没想的那么简单,一两篇文章估计完结不了。 除此之外,我还想到了一点DeepSeek没考虑到的,比如别有用心的人借助网站上传图片的功能,拿到链接后,放到其他网站上用。 这个就像之前我说的,把我们网站当作图床了,防不胜防,浪费网站的资源。 第二、三条是更麻烦的,如果被用到了其他违规内容网站,会被连带处罚,到时整个网站的图片都打不开了。看了上面这些关注点,感觉已经开始进入深水区了,我估计没法一一实现。不过把它当作一个大任务,慢慢拆解下,一步一步的实现,肯定可以开发完成的。下次我们就一点点开发,见招拆招,如今有了AI在手,这些都不是问题。
阅读原文:原文链接
该文章在 2026/11/10 11:08:01 编辑过