V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
suSouth
V2EX  ›  分享发现

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

  •  
  •   suSouth · 2018-12-06 08:22:22 +08:00 · 2954 次点击
    这是一个创建于 2175 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小程序项目如何设置资源的防盗链?

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

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

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

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

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

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

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

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

    小程序的访问次数

    欠费通知,cos 的访问量,

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

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

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

    微信小程序怎么获取当前页面的 url 啊

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

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

    赶紧在 cos 上配置了这个白名单

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

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

    码农书籍,一起阅读,一起进步,用心分享 做有温度的攻城狮,苏南的专栏

    更多文章:

    作者:苏南 - 首席填坑官

    链接: http://susouth.com/

    交流:912594095、公众号:honeyBadger8

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

    7 条回复    2018-12-07 14:40:58 +08:00
    inroading
        1
    inroading  
       2018-12-06 08:31:56 +08:00
    JWT
    zjwshisb
        2
    zjwshisb  
       2018-12-06 09:06:10 +08:00
    换个思路,用 wx.login, 即 1 楼说的 jwt
    NullException
        3
    NullException  
       2018-12-06 10:20:39 +08:00
    hoythan
        4
    hoythan  
       2018-12-06 11:00:30 +08:00
    我这前后端数据 rsa 加密成了一个 key 用于传递效验
    YuAtk
        5
    YuAtk  
       2018-12-06 11:17:12 +08:00
    建议把 pdf 按章节分开 加一个目录页 这样也能减少流量的使用
    ytmsdy
        6
    ytmsdy  
       2018-12-06 11:57:22 +08:00
    文件放到 oss 上,在 oss 上开启防盗链功能。所有的文件都需要带上 key 才能访问到。
    suSouth
        7
    suSouth  
    OP
       2018-12-07 14:40:58 +08:00
    @a15011059176 这是个不错的办法,但是分开,需要不少时间
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:29 · PVG 00:29 · LAX 08:29 · JFK 11:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.