• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. asp.net中利用ashx實現圖片防盜鏈代碼

        時間:2024-07-19 05:49:57 ASP 我要投稿
        • 相關推薦

        asp.net中利用ashx實現圖片防盜鏈代碼

          直接分析盜鏈原理:看下面用httpwatch截獲的http發送的數據

          GET /Img.ashx?img=svn_work.gif HTTP/1.1

          Accept: */*

          Referer: /

          Accept-Language: zh-cn

          UA-CPU: x86

          Accept-Encoding: gzip, deflate

          User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)

          Host:

          Connection: Keep-Alive

          該數據包表示請求/Img.ashx?img=svn_work.gif文件。我們可以看到Referer表示上一頁請求頁面地址,也就是文件來源。Host表示當前請求的主機地址。

          下面是一個盜鏈的數據包

          GET /Img.ashx?img=svn_work.gif HTTP/1.1

          Accept: */*

          Referer: http://745.cc/

          Accept-Language: zh-cn

          UA-CPU: x86

          Accept-Encoding: gzip, deflate

          User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)

          Host:

          Connection: Keep-Alive

          我們可以看到,上面兩個數據,表示對于同一個文件:/Img.ashx?img=svn_work.gif的請求過程,這里的不同就是Referer,也就是都是請求同一個文件,但是請求的來源是不同的。因此我們可以在程序里判斷是否是來源于當前服務器,來判斷是否是盜鏈。明白原理以后,實現防盜鏈就非常簡單了。下面以圖片防盜鏈來實現一個演示。ASP.NET中添加一個img.ashx文件,然后后臺代碼如下:

          復制代碼 代碼如下:

          using System;

          using System.Collections;

          using System.Data;

          using System.Web;

          using System.Web.Services;

          using System.Web.Services.Protocols;

          namespace GetImage

          {

          ///

          /// $codebehindclassname$ 的摘要說明

          ///

          [WebService(Namespace = "http://tempuri.org/")]

          [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

          public class Img : IHttpHandler

          {

          public void ProcessRequest(HttpContext context)

          {

          context.Response.ContentType = "image/jpg";

          if (context.Request.UrlReferrer != null && context.Request.UrlReferrer.Host.Equals(context.Request.Url.Host, StringComparison.InvariantCultureIgnoreCase))

          context.Response.WriteFile(context.Server.MapPath("~/" + context.Request.QueryString["img"]));

          else

          context.Response.WriteFile(context.Server.MapPath("~/logo.gif"));

          }

          public bool IsReusable

          {

          get

          {

          return false;

          }

          }

          }

          }

          表示如果來源不為空,并且來源的服務器和當前服務器一致,那就表示是正常訪問,非盜鏈。正常訪問文件內容。

          否則就是盜鏈,返回網站LOGO。

          你甚至可以做成隨機返回正確的圖片,隨機返回錯誤圖片,或者定時返回正確圖片,定時返回錯誤圖片。

          然后就是圖片的使用了,這時使用圖片就不是直接了,而是,就是說通過img,ashx來讀取圖片。別人盜鏈的話要用代碼。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【asp.net中利用ashx實現圖片防盜鏈代碼】相關文章:

        防盜鏈接ASP函數實現代碼01-23

        關于ASP.NET使用JavaScript顯示信息提示窗口實現原理及代碼05-09

        JavaScript實現網頁刷新代碼段08-07

        將php實現過濾UBB代碼09-11

        ASP.NET連SQL7接口的源代碼06-06

        Java中的動態代碼編程06-27

        在Java中執行JavaScript代碼07-14

        常用排序算法之JavaScript實現代碼段06-04

        關jQuery彈出窗口簡單實現代碼-javascript編程06-07

        cad中怎么導入圖片09-14

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲另类欧美综合久久 | 日韩亚洲欧美中文字幕影音先 | 亚洲欧洲一区二区欧美国产 | 亚洲精品私拍国产 | 日本不卡在线视频 | 最新久久久久久一本 |

            asp.net中利用ashx實現圖片防盜鏈代碼

              直接分析盜鏈原理:看下面用httpwatch截獲的http發送的數據

              GET /Img.ashx?img=svn_work.gif HTTP/1.1

              Accept: */*

              Referer: /

              Accept-Language: zh-cn

              UA-CPU: x86

              Accept-Encoding: gzip, deflate

              User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)

              Host:

              Connection: Keep-Alive

              該數據包表示請求/Img.ashx?img=svn_work.gif文件。我們可以看到Referer表示上一頁請求頁面地址,也就是文件來源。Host表示當前請求的主機地址。

              下面是一個盜鏈的數據包

              GET /Img.ashx?img=svn_work.gif HTTP/1.1

              Accept: */*

              Referer: http://745.cc/

              Accept-Language: zh-cn

              UA-CPU: x86

              Accept-Encoding: gzip, deflate

              User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA)

              Host:

              Connection: Keep-Alive

              我們可以看到,上面兩個數據,表示對于同一個文件:/Img.ashx?img=svn_work.gif的請求過程,這里的不同就是Referer,也就是都是請求同一個文件,但是請求的來源是不同的。因此我們可以在程序里判斷是否是來源于當前服務器,來判斷是否是盜鏈。明白原理以后,實現防盜鏈就非常簡單了。下面以圖片防盜鏈來實現一個演示。ASP.NET中添加一個img.ashx文件,然后后臺代碼如下:

              復制代碼 代碼如下:

              using System;

              using System.Collections;

              using System.Data;

              using System.Web;

              using System.Web.Services;

              using System.Web.Services.Protocols;

              namespace GetImage

              {

              ///

              /// $codebehindclassname$ 的摘要說明

              ///

              [WebService(Namespace = "http://tempuri.org/")]

              [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

              public class Img : IHttpHandler

              {

              public void ProcessRequest(HttpContext context)

              {

              context.Response.ContentType = "image/jpg";

              if (context.Request.UrlReferrer != null && context.Request.UrlReferrer.Host.Equals(context.Request.Url.Host, StringComparison.InvariantCultureIgnoreCase))

              context.Response.WriteFile(context.Server.MapPath("~/" + context.Request.QueryString["img"]));

              else

              context.Response.WriteFile(context.Server.MapPath("~/logo.gif"));

              }

              public bool IsReusable

              {

              get

              {

              return false;

              }

              }

              }

              }

              表示如果來源不為空,并且來源的服務器和當前服務器一致,那就表示是正常訪問,非盜鏈。正常訪問文件內容。

              否則就是盜鏈,返回網站LOGO。

              你甚至可以做成隨機返回正確的圖片,隨機返回錯誤圖片,或者定時返回正確圖片,定時返回錯誤圖片。

              然后就是圖片的使用了,這時使用圖片就不是直接了,而是,就是說通過img,ashx來讀取圖片。別人盜鏈的話要用代碼。