yydy 发表于 2019-1-22 15:42:26

php中图片防盗链如何绕过的方法

  很多php开发的网站中,都使用了图片防盗链技术,这样做的好处是很多的,比如节省带宽。但有时我们需要某张别人的图片,此时可以参考下本文介绍的方法。

  假设有这样一张图片:
https://img0.pconline.com.cn/pconline/1901/04/12194819_02_thumb.jpg
  直接链接时无法显示真实图片(除chrome浏览器外)。
  显示效果如下:
https://img0.pconline.com.cn/pconline/1901/04/12194819_02_thumb.jpg

  解决方法如下:
1、将以下代码建立一个php文件,存储为:showpic.php
<?php
    $url = $_GET["url"];
    //$url = str_replace("http:/","http://",$url);   
    $dir = pathinfo($url);
    $host = $dir['dirname'];
    $refer = $host.'/';
      
    $ch = curl_init($url);
    curl_setopt ($ch, CURLOPT_REFERER, $refer);
    curl_setopt($ch, CURLOPT_RETUR***ANSFER, true);//激活可修改页面,Activation can modify the page
    curl_setopt($ch, CURLOPT_RETUR***ANSFER, 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;   
?>

2、将showpic.php文件存放在网站根目录,然后图片调用方式为:
http://www.yydy.org:5/showpic.php?url=https://img0.pconline.com.cn/pconline/1901/04/12194819_02_thumb.jpghttp://www.yydy.org:5/showpic.php?url=https://img0.pconline.com.cn/pconline/1901/04/12194819_02_thumb.jpg

yydy 发表于 2023-3-29 15:41:58

时隔多年依然有效!
页: [1]
查看完整版本: php中图片防盗链如何绕过的方法