<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 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來讀取圖片。別人盜鏈的話要用代碼。

    【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

    主站蜘蛛池模板: 久久国产香蕉一区精品| 亚洲精品国产高清嫩草影院 | 99视频在线精品国自产拍亚瑟| 国产AV午夜精品一区二区三区| 中文字幕亚洲精品无码| 尤物yw午夜国产精品视频| 亚洲AV无码国产精品色午友在线| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 亚洲国产精品无码久久久久久曰| 欧美ppypp精品一区二区| 无码人妻精品一区二区三区久久 | 91精品全国免费观看青青| 四虎影永久在线观看精品| 精品人妻少妇一区二区三区在线| 中文字幕精品无码久久久久久3D日动漫| 日产精品一线二线三线芒果| 国产精品1区2区| 久久无码精品一区二区三区| 无码国产精品一区二区免费16| 精品九九人人做人人爱| 老子影院午夜精品无码 | 亚洲日韩精品射精日| 奇米精品视频一区二区三区| 久久精品国产99国产精偷| 欧洲精品一区二区三区在线观看 | 久久亚洲精精品中文字幕| 青青草原综合久久大伊人精品| 久久精品无码免费不卡| 亚洲av无码国产精品夜色午夜| 99久久精品免费| 欧美精品v欧洲精品| 久久久精品久久久久久| 2022国产精品福利在线观看| 色哟哟国产精品免费观看| 久久青草国产精品一区| 欧美精品hdvideosex4k| 久久99精品久久久久久秒播| 国产精品视频一区二区三区经 | 国产精品亚洲一区二区在线观看| 久久综合精品国产二区无码| 国产亚洲精品影视在线产品 |