码农小程序之如何设置资源的防盗链?

2018-12-06 08:22:22 +08:00
 suSouth

做过前端,或对小程序有些了解的同学都知道,小程序是没有域名访问概念的,访问的路径都是以:“/pages/index ”、“/pages/my ”这种方式进行页面跳转的。域的概念从何而来?

事情是这样的,前段时间突然冒出个想法,大家上下班,有些人离公司比较远,回家路上 /地铁上,可能都会比较无聊,看看新闻、听听音乐啥的。

但是对于 IT 行业的程序员们来说,入了 IT 领域就意味着,永远有学不完的东西,经常就有看到一些人在地铁拿着一本书在看,于是我灵机一动,想着做了个小程序,收集一些电子书,方便大家随时随地的阅读,既不耽误学习,回家的路上也不无聊,而且小程序集成在微信里,不会给大家带来负担。

说干就干,经过几个周末的开发和测试,慢慢的小程序成型了,也发布上线了,是基于 wepy 框架开发的,坑点之前的文章已经说过了,就不再提了。主要讲讲后面发生的一些事。

作为技术交流,平时也加了一些群,都有一些不错的书,工作几年自己也弄了些存货,这次是全部家当都拿出来了、还找了几个测试java的后端大佬,都收集了些他们的珍藏品,因为没有自己的服务器,刚开始是把内容存放在阿里云上的,但没两天告诉我欠费了……,

想哭,就这么工资,怎么经的起折腾啊,后来了解了一下腾讯云,每月有些免费的流量,果然放弃了阿里云,把东西转移到了腾讯云。嗯,就这样很开心的把小程序上线了,每天有事没有看看书,觉得还是蛮方便,身边同事也都觉得不错,还给提了些小建议。

然而小程序放上去不到两周,就在昨天、就在昨天、就在昨天,突然收到腾讯云的邮件提示,cos 欠费,C\A\O,什么情况啊,我懵逼了……,想了半天,先充了几块钱进去……,毕竟不想自己努力构思的产品,就诞生这么几天就夭折了。

今天在快下班了突然想起这个事,想着赶紧看一下,发现 cos 的数据把我吓哭了、真的、如果不到两周能有这么高的访问量,我会很开心的,然而小程序的后台数据是不一样的。

坑爹的啊,请求次数 2.85w ,小程序的访问量不到 1000

不用说,这是被人欺负了……,内心 1W 个草泥马,在心里奔腾,怎么办呢?第一时间是想到了防盗链,不允许指定域名以外的站点访问你的链接。

但问题又来了,前面说过,小程序没有域名啊~

于是在项目中,把 Network 面板的信息看了又看,查看Headers信息,看到Referer这里有一个没见过的域名把整个页面请求头(后面发现的,哈哈~),百度搜索无果,最后还是谷歌告诉我,小程序也是有个域名的,请看下图:

原谅我穷,赶紧在 cos 上配置了这个白名单,同时也赶紧测试了一下,去掉后,是否还能访问,以图为示例: 小程序的域名:servicewechat.com

当然这个方法是不完全可靠的,比如其他小程序也是这个域名啊,还是能调用你的资源,有点纳闷~,求大佬们指点可靠的方法。感谢!!

以上就是今天的随笔小记,希望能帮到其他遇到同样坑爹事情的同学,最后分享一下做的小程序:码农书籍,爱学习、阅读电子书的同学可以收藏一下!

更多文章:

作者:苏南 - 首席填坑官

链接: http://susouth.com/

交流:912594095、公众号:honeyBadger8

本文原创,著作权归作者所有。商业转载请联系@IT·平头哥联盟获得授权,非商业转载请注明原链接及出处。

2957 次点击
所在节点    分享发现
7 条回复
inroading
2018-12-06 08:31:56 +08:00
JWT
zjwshisb
2018-12-06 09:06:10 +08:00
换个思路,用 wx.login, 即 1 楼说的 jwt
NullException
2018-12-06 10:20:39 +08:00
hoythan
2018-12-06 11:00:30 +08:00
我这前后端数据 rsa 加密成了一个 key 用于传递效验
YuAtk
2018-12-06 11:17:12 +08:00
建议把 pdf 按章节分开 加一个目录页 这样也能减少流量的使用
ytmsdy
2018-12-06 11:57:22 +08:00
文件放到 oss 上,在 oss 上开启防盗链功能。所有的文件都需要带上 key 才能访问到。
suSouth
2018-12-07 14:40:58 +08:00
@a15011059176 这是个不错的办法,但是分开,需要不少时间

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

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

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

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

© 2021 V2EX