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

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

建立微博图床镜像

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

<?php

if (!preg_match('/blog.yiny.ml/i',$_SERVER['HTTP_REFERER']) && !preg_match('/shizuri.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;");

echo $file_data;
}

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

更改图片引用连接

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

<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='); 
    }
}
  console.clear() ;
</script>