新浪图床限制外链的解决方法

新浪图床,或者说微博图床,应该是很有名的了。
全球 CDN 加持、不占用站点存储空间、免费还高质量的东西,白嫖起来当然是很舒服的。
所以有一些站点就是依赖于新浪图床的。
可是新浪图床在大概一年前的时候,对图片服务器的域名做了防盗链处理。
这样一来,引用的图片就无法显示了(只有一个图片损坏的小图标)。如下图

解决方案

那么针对这个问题,应该怎么解决的呢?
其实引用的图片并非全部无法显示,https协议的图片链接会显示不出来,而http协议则完全正常。
大致可以判断,新浪只针对https协议设置了防盗链处理。
所以处理方式就很简单了:直接把图片链接统统换成http协议,随后引用的图片全部恢复显示。
不过这样会有个小问题。
针对https协议的网站,引用http资源时会被视为是“混合内容”,这样的状态下,网站不会被判断为安全。最直观的一点就是浏览器的地址栏上会有不同的提示:





当然,如果不是强迫症患者,可以无视。
如果非要解决的话,请看下面的终极解决方案。

终极解决方案

新浪图床域名的结构是:节点名+序号+sinaimg.cn,其中节点名主要有wwwswx这三种。举个例子就是ww1.sinaimg.cn
这些节点都接入了 CDN,节点名似乎只是用来区分 CDN 的提供商。所以将节点名进行改动,也是大概率能够访问到同一张图片的。

很巧的是,后来新浪又增加了一个tva的节点名,并且没有设置防盗链。
通过将节点名修改为tva,你就会发现,图片神奇地打开了,也可以通过https协议正常引用在网站当中,浏览器也不再提示“部分安全”。

参考文章:https://www.kiwiape.cn/tech/2020/04/30/solve-sinaimg-referrer-restriction.html
打赏
评论区
头像
    头像
    奥秘Sir
      

    方便给个联系方式嘛

      头像
      Taniszyc
        
      @奥秘Sir

      1834675674#qq.com

    头像
    奥秘Sir
      

    网站建议配置伪静态,顺便问下博主用的啥·系统和主题

      头像
      Taniszyc
        
      @奥秘Sir

      配置好了 ~用的Typecho 主题是Cuteen,大佬很强 用的评论推送插件CommentPush