特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系QQ403593407!本站提供的所有教程/文章/软件均仅供测试学习,造成的后果与本站无关!请不要用作非法用途,本站将记录用户下载记录做保存,如用户后期有违法行为方便提供给警方。

    • [v_notice]

    • 新浪图床可以说是目前使用最广泛的图床之一,今日见群里各大博主纷纷吐槽,新浪图床疑似已经开始限制外链,网站内图片纷纷呈现 403 的惨状,于是这里给出一种 PHP 反防盗链的方法。

[/v_notice]

一. PHP 代码

新建一个 sina.php 文件放在根目录,然后将以下代码复制进去。

<?php
$url = $_GET["url"];
$dir = pathinfo($url);
$host = $dir['dirname'];
$refer = $host.'/';

$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//激活可修改页面,Activation can modify the page
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);

$ext = strtolower(substr(strrchr($img,'.'),1,10));
$types = array(
            'gif'=>'image/gif',
            'jpeg'=>'image/jpeg',
            'jpg'=>'image/jpeg',
            'jpe'=>'image/jpeg',
            'png'=>'image/png',
);
$type = $types[$ext] ? $types[$ext] : 'image/jpeg';
header("Content-type: ".$type);
echo $data;

二。修改图片链接

由于文章基本都是存在于数据库中,这里提供的两种方法都是针对数据库的。

1. 执行 SQL 语句

UPDATE `typecho_contents` SET `text` = REPLACE(`text`, 'https://ws3.sinaimg.cn', 'https://你的域名/sina.php?url=https://ws3.sinaimg.cn') WHERE `text` LIKE '%https://ws3.sinaimg.cn%'

示例前缀是 ws3,若有其他,自行修改即可。Typecho 用户替换语句中你的域名以及新浪的域名,其他建站系统请自行修改相应的表名及字段。

这里还可能不止一个表中存在新浪图床的图片,例如 Links 插件的 image 字段也有可能出现图片,具体情况,具体分析。

2. 编辑器替换

新浪图床开启防盗链后图片403解决方法

此方法简单实用,推荐使用这种方法。

首先将数据库导出,用编辑器打开.sql文件,例如我这里使用 Sublime Text 3,直接按图中替换即可。另外请多查找一下其他二级域名,避免漏网之鱼。

未经允许不得转载:作者:admin, 转载或复制请以 超链接形式 并注明出处 夜河资源网
原文地址:《新浪图床开启防盗链后图片403解决方法》 发布于2019-11-20

分享到:
赞(0)

评论 抢沙发

8 + 7 =


电信无限流量卡
无限流量卡限时9.9元全国包邮!不限速无套路!25元/月享100G流量!35元/月享200G流量!55元享受500G流量!!
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册