`
余贵彬
  • 浏览: 59950 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

图片盗链和防盗链

 
阅读更多
背景:今天为了了解高并发,大访问量的技术中,有提到防盗链这块,就先整理清楚这块的内容..

什么是盗链?(具体请参考)
    http://www.cnblogs.com/AngelLee2009/archive/2011/10/13/2209594.html

第一部分:如何防盗链

第一种方式,通过服务器配置来禁止非法访问,我这里要以Nginx配置为例;
   具体请参考:http://blog.csdn.net/longjef/article/details/53284108


第二种方式: 通过动态防护处理的方式,但是可能会影响网站的性能;




第二部分: 如何盗链
无非就是动态模拟头部等方式去读取内容,如果系统做了第二种动态防护的方式,就得想其他的方式了,目前没有好想法~_~






代码:
nginx配置防盗链
location ~* \.(gif|jpg|jpeg|png|bmp|swf)$ {
     valid_referers  none blocked my_mobile.com ;
      if ($invalid_referer) {
           return   403;
       }
}

盗链防护代码

<!--正常的图片访问方式-->
<img src="http://my_mobile.com/static/images/getheadimg.jpg">
<!--防盗链的图片访问方式-->
<img src="http://my_mobile.com/test/get_img?id=xxx">

//这里只是举个简单的例子,至于id验证,逻辑判断和面向对象写法,自己实际去做的时候去优化
//实际路由,请自己复制代码到项目中进行测试
public function get_img($img_name='getheadimg.jpg') {
$file_name = FCPATH."/static/images/".$img_name;
$img_data = fread(fopen($file_name,'rb'),filesize($file_name));
$img_info = getimagesize($file_name);
header("content-type:{$img_info['mime']}");
echo $img_data;
}

盗链代码

//PHP如何盗链
    public function index() {
        //第一种情况:没做防盗链处理的盗链方式,直接访问就可以了     
        // echo '<img src="http://my_mobile.com/static/images/add.png">';
       
        //第二种情况: 做了nginx防盗链处理的盗链方式,还是可以盗链
        $url="http://my_mobile.com/static/images/getheadimg.jpg";
        //方式一
//        $dir = pathinfo($url);
//        $refer = $dir['dirname'].'/';
//        $ch = curl_init($url);
//        curl_setopt ($ch, CURLOPT_REFERER, $refer);
//        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
//        $data = curl_exec($ch);
//        curl_close($ch);
//        header("Content-type: image/jpeg");
//        print( $data );
        //方式二:
         header('Content-type: image/jpeg');
        echo file_get_contents($url);
    }
  • 大小: 4.4 KB
  • 大小: 27.7 KB
  • 大小: 25.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java 防盗链详解及解决办法

    防盗链的概念是指在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。防盗链是一种不道德的行为,会对原网站造成很...

    采集破解防盗链图片显示的方法

    在互联网上,图片防盗链是一种常见的保护措施,用于防止他人未经许可直接引用网站上的图片资源。这导致了图片采集过程中可能会遇到图片无法显示的问题。本文将深入探讨如何使用PHP来破解防盗链,以便在采集图片时能...

    三招两式 解决图片盗链无法查看问题

    图片盗链是互联网内容分享过程中经常遇到的一个问题,尤其是当原网站启用了防盗链机制时,未经允许的图片链接将无法正常显示。下面详细分析该问题的解决方案,并提供在不同浏览器中浏览盗链图片的方法。 首先,了解...

    网站防盗链(IIS7.0与IIS7.5配置防盗链)

    网站防盗链技术是一种防止其他网站未经许可盗用你服务器上资源的方法,比如图片、视频或文件等。在IIS(Internet Information Services)7.0和7.5版本中,可以通过设置HTTP响应标头和URL筛选器来实现防盗链功能。...

    ISAPI Rewrite实现IIS图片防盗链

    为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。  实施步骤:  1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上...

    破解图片盗链JS

    这是一个不错的破解图片盗链JS。利用html就可以破解盗链。

    IIS防盗链,示例文件

    【IIS防盗链详解】 ...总的来说,IIS防盗链是一种有效的资源保护策略,通过合理的配置,可以有效地保护音乐、图片等资源免受盗链困扰。同时,管理员需要定期评估和调整防盗链策略,以适应不断变化的安全环境。

    纵横IIS防盗链嗅探狗

    3. **日志记录**:纵横IIS防盗链嗅探狗能够记录所有防盗链相关的活动,帮助管理员了解哪些站点在尝试盗链,以及防盗链规则的效果,便于进一步优化安全策略。 4. **实时监控**:该工具会实时监控IIS服务器上的所有...

    WBAL防盗链工具 v0.1

    《WBAL防盗链工具 v0.1》是一款专为ASP.NET环境设计的防盗链解决方案,旨在保护网站资源不被未经授权的第三方非法获取和利用。在IIS(Internet Information Services)服务器上部署此工具,可以有效地防止其他网站...

    微信防盗链JavaScript

    微信图片防盗链问题源于微信对自身内容保护的措施,它限制了外部网站直接引用微信服务器上的图片资源。当用户尝试在非微信环境中分享或转载微信文章中的图片时,这些图片通常无法正常显示。为了解决这个问题,我们...

    Node.js-FileTransferServer解决防盗链图片使用问题的中转服务器

    本篇文章将深入探讨如何利用Node.js创建一个FileTransferServer,用于解决图片防盗链的问题。 **一、防盗链图片问题** 防盗链,即防止其他网站未经许可直接引用你的服务器上的资源,特别是图片,以节省自己的带宽...

    WBAL防盗链工具

    在互联网上,特别是对于那些提供图片、视频或者下载服务的网站,防盗链措施至关重要,因为这直接影响到服务器的性能和运营成本。 ASP.Net是微软公司推出的一种Web应用程序框架,它为开发者提供了构建动态、数据驱动...

    亦梦IIS图片防盗链 v5.0

    然而,IIS默认设置并不包含防止图片盗链的功能,这就需要额外的解决方案,例如“亦梦IIS图片防盗链”插件。 这款插件的工作原理是检查HTTP请求头中的`Referer`字段,该字段通常包含发送请求的页面URL。当外部网站...

    呆呆防盗链扩展版 v1.4

    例如,如果你希望保护所有图片资源不被外链,只需将".jpg", ".png"等图片文件类型加入防盗链规则。同时,设置特定关键词也能确保只有符合规则的链接才能正常访问,增强了防护的灵活性和针对性。 此外,呆呆防盗链...

    Nginx配置防盗链的完整步骤

    然而,需要注意的是,防盗链并不能完全防止所有的盗链行为,因为有些高级的攻击者可能会通过伪造`Referer`头来绕过防护。因此,结合其他安全措施,如IP黑白名单、用户认证等,可以进一步提高资源的安全性。

    Java防盗链在报表中的应用实例

    在FineReport报表软件和决策系统相结合的情况下,若要防止报表内容被非法传播和盗用,就需要引入防盗链技术。 在防盗链技术中,一个常见的策略是检查HTTP请求头中的Referer字段。Referer字段会告知服务器发出请求的...

    图片防止盗链 转转kaka100

    例如,大型网站可能同时使用Referrer检查、Token验证和CDN策略来防止图片盗链。 参考链接提供的博客(由于链接无法直接访问,此处无法提供具体内容),博主可能详细解释了这些技术的实现步骤、优缺点以及一些实际...

    ASP.NET网站防盗链代码

    ASP.NET网站防盗链技术是为了防止网站上的资源,如图片、视频、音频或文件等,被其他网站未经许可直接引用,从而导致流量损失和版权问题。本文将深入探讨如何实现ASP.NET中的防盗链代码,以及其背后的原理。 首先,...

    C# ASP.NET 模块 - 防盗链模块

    在Web开发中,防盗链(Anti-Linking)技术是一个关键的安全措施,它防止恶意网站未经许可引用或显示您的服务器上的资源,如图片、视频等。本教程将深入讲解如何在C# ASP.NET环境中实现一个防盗链模块。 首先,让...

    破解图片反盗链

    本主题主要探讨如何“破解图片反盗链”,涉及ASP、JSP和PHP三种Web开发语言的解决方案。 首先,我们需要理解图片反盗链的基本原理。通常,服务器会检查请求图片的来源(Referer头),如果发现来源不是预期的网站,...

Global site tag (gtag.js) - Google Analytics