微博图床失效? 笨办法解决

就在前几日, 微博图床加入了防盗链, 只要你有referer引用就会返回403. 但是直接访问是可以的.

也是我就想, 我能不能用这个方法访问, 用 php 去访问然后再去返回呢. 只要把 img src 全部换掉不就行了吗.

建立微博图床镜像

于是, 首先写一个 php ,用它来获取图片,然后返回它。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

if (!preg_match('/blog.yiny.ml/i',$_SERVER['HTTP_REFERER']) && !preg_match('/shizruri.net/i',$_SERVER['HTTP_REFERER']) && !preg_match('/yinys.tk/i',$_SERVER['HTTP_REFERER'])){
echo $_SERVER['HTTP_REFERER'];
}
else
{
$url = 'https://wx1.sinaimg.cn/' . $_GET['src'];

$file_data = file_get_contents($url);

header("Content-Type: image/jpeg;");

header("Access-Control-Allow-Origin: *");

echo $file_data;
}

其中,第一个 if 用来判断是否是你的站点,用来防滥用。

更改图片引用连接

在每篇文章的 <footer> 标签中,引用如下代码

1
2
3
4
5
6
7
8
9
10
11
<script>
var img_arr = document.querySelectorAll('img[src]');

for (var i = 0; i < img_arr.length; i++ )
{
if(img_arr[i].src.indexOf('.sinaimg') !== -1)
{
img_arr[i].src = img_arr[i].src.replace(/[A-z]+[0-9].sinaimg.cn/g,'shizuri.net/get_img.php?src=');
}
}
</script>

本文标题:微博图床失效? 笨办法解决

文章作者:yiny

发布时间:2019年04月27日 - 22:04

最后更新:2019年04月27日 - 22:04

原始链接:https://blog.yiny.ml/2019/04/27/solve-sinaimg/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%