贴图库家的程序员真牛 b,『没时间解释』

2017-04-10 19:39:08 +08:00
 only0jac
今天看贴图库开发文档的时候,发现:



因为 token 固定,我就想这样岂不是能让别人随意上传到自己相册?

加他们官方群想问问,运营说这只是个例子

然后我又问,如果纯前端,不经过后端的话,怎么能保证安全,此时我艾特了他们的两个技术



没时间解释……

过了一会又答非所问:



我给他解释了一遍,此时!!!他回复:



嗯,我的网站不牛逼,不用了行不行,你们又不缺我一个用户

不过,以后在网上碰到有让推荐图床的,我会说:千万别用贴图库!

要是有人问贴图库好不好

我就回复:贴图库不好,千万别用贴图库:)

最后说一句,其实贴图库真的能上传到别人的相册

=========

记得有吐槽节点来着,怎么没了
9428 次点击
所在节点    程序员
67 条回复
crab
2017-04-11 00:22:16 +08:00
遇到这种给他说哪里有问题,但对方直接反问你很厉害这类的,还是别浪费自己时间了。
starvedcat
2017-04-11 07:40:40 +08:00
退群还是可以看聊天记录的吧
Jackeriss
2017-04-11 08:13:07 +08:00
你这个『没时间解释』跟别人不太一样啊。
only0jac
2017-04-11 08:14:08 +08:00
@whileFalse
@aec4d
@mcone
前端确实没法弄,既然他们自己觉得没问题,那就让他们这么搞吧
only0jac
2017-04-11 08:17:08 +08:00
@crab 他可能觉得我不是他们的超级大客户,不值得回答,也没必要跟免费用户或一年只付 100 块钱的用户废话
dawniii
2017-04-11 08:35:59 +08:00
@only0jac 刚去看了下他们家的文档,根据上面的参数判断, token 貌似不是死的。是要后端生成给前端用的,有过期时间的。和七牛差不多。
fhefh
2017-04-11 08:38:09 +08:00
微博图床~
popok
2017-04-11 08:38:42 +08:00
因为这个参数叫 token ,所以你会觉得不安全。因为 token 这个词一般都和账户验证什么的有关。
如果把他改成 AlbumId 呢?是不是觉得没那么严重了?

如果你网站提供用户上传功能,那么用户才可能在前端代码中看到这个 token 。你说别人可以往你相册里上传文件,关键是你自己先提供了上传功能啊。
至于这个 token 是不是可以做其他和你账户相关的操作,我没有用过贴图库,所以不知道。

以上个人观点,如有不对,欢迎吐槽。
alwayshere
2017-04-11 08:52:12 +08:00
个人觉得,这个只是一个演示,就是告诉你上传到贴图库服务器需要哪些参数,用 form 这种表单形式最简单明了了,实际生产环境中肯定不不可能直接放 token 到前端,贴图库应该是不支持直接上传,需要先上传图片到你的服务器,你的服务器再把这个图片连同这个 token 传递给贴图库服务器
nullcc
2017-04-11 09:12:19 +08:00
如果是前端上传的话,除非你的页面可以 XSS ,不然别人也拿不到这个 token 吧
murmur
2017-04-11 09:14:40 +08:00
因为 token 固定,我就想这样岂不是能让别人随意上传到自己相册?

是啊,没问题,如果你有一个页面把 token 暴露出来我还不是可以上传到你的相册。。这个 token 只能防刷不能防偷用

新浪微博不就是么,大家都拿来做图床了,连 token 都没人关系,反正直接外链。。
xiaket
2017-04-11 09:19:29 +08:00
#不知道什么是 csrf 的看不懂本贴#
miaotaizi
2017-04-11 09:23:43 +08:00
@xiaket 根本不是 csrf
他那 token 基本就是一个 user_id 不变的
fulvaz
2017-04-11 09:39:37 +08:00
没上下文这帖子没意义啊!
jy02534655
2017-04-11 09:44:54 +08:00
一个图片先传到服务端再由服务端传到图床这种方式意味着时间加倍和流量消耗加倍
所以前端直传是比较好的方案,我们公司用的是阿里云,每次上传前先向服务端请求密钥也就是 token 这些,这里请求到的 token 是有过期时间的,这样也就不存在楼主所说的问题了。然后再上传就行了
only0jac
2017-04-11 10:01:46 +08:00
@popok 对呀,但是,如果把这个 token 写在前端,是直接可以用的,不需要他提供上传功能

@nullcc 直接写在页面了

@alwayshere 虽然是演示,但他们确实这么做了
only0jac
2017-04-11 10:07:16 +08:00
@jy02534655 你看,这就是问题所在,你这个向服务端请求 token 是用 ajax 吗,如果是的话,那我也向你服务端请求 token ,在我本地也能传到你的 oss 吧?

有些人说反正全站在自己手里,他上传了给删掉不就行了,可是,这不是给自己找麻烦么,别人上传垃圾图,你每天还得检查有没有被别人上传,还得保证自己的图片不被误删,增加工作量啊
only0jac
2017-04-11 10:08:35 +08:00
@only0jac
@jy02534655 “全站”→权限
jccg90
2017-04-11 10:10:33 +08:00
明明可以再写一个后端上传的示例的。。。
jy02534655
2017-04-11 10:40:47 +08:00
@only0jac 我这里用 ajax 请求 token (需要登录验证)是需要验证权限的,没有权限根本就请求不到的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/353895

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX