GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.jb51.net/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, def " /> 暖暖 日本 视频 在线观看免费 ,中文字幕无线手机在线,97久久国产露脸精品国产

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

asp.net中利用ashx實(shí)現(xiàn)圖片防盜鏈的原理分析

 
直接分析盜鏈原理:看下面用httpwatch截獲的http發(fā)送的數(shù)據(jù)

GET /Img.ashx?img=svn_work.gif HTTP/1.1
Accept: */*
Referer: http://www.jb51.NET/
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: www.jb51.NET
Connection: Keep-Alive


該數(shù)據(jù)包表示請(qǐng)求http://www.jb51.NET/Img.ashx?img=svn_work.gif文件。我們可以看到Referer表示請(qǐng)求頁(yè)面地址,也就是文件來(lái)源。Host表示當(dāng)前請(qǐng)求的主機(jī)地址。

下面是一個(gè)盜鏈的數(shù)據(jù)包

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: www.jb51.NET
Connection: Keep-Alive

我們可以看到,上面兩個(gè)數(shù)據(jù),表示對(duì)于同一個(gè)文件:http://www.jb51.NET/Img.ashx?img=svn_work.gif的請(qǐng)求過(guò)程,這里的不同就是Referer,也就是都是請(qǐng)求同一個(gè)文件,但是請(qǐng)求的來(lái)源是不同的。因此我們可以在程序里判斷是否是來(lái)源于當(dāng)前服務(wù)器,來(lái)判斷是否是盜鏈。明白原理以后,實(shí)現(xiàn)防盜鏈就非常簡(jiǎn)單了。下面以圖片防盜鏈來(lái)實(shí)現(xiàn)一個(gè)演示。ASP.NET中添加一個(gè)img.ashx文件,然后后臺(tái)代碼如下:

復(fù)制代碼 代碼如下:
using System;
using System.Collections;
using System.Data;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

namespace GetImage
{
/// <summary>
/// $codebehindclassname$ 的摘要說(shuō)明
/// </summary>
[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;
}
}
}
}




表示如果來(lái)源不為空,并且來(lái)源的服務(wù)器和當(dāng)前服務(wù)器一致,那就表示是正常訪(fǎng)問(wèn),非盜鏈。正常訪(fǎng)問(wèn)文件內(nèi)容。

否則就是盜鏈,返回網(wǎng)站LOGO。

你甚至可以做成隨機(jī)返回正確的圖片,隨機(jī)返回錯(cuò)誤圖片,或者定時(shí)返回正確圖片,定時(shí)返回錯(cuò)誤圖片。

然后就是圖片的使用了,這時(shí)使用圖片就不是直接<input type="image" src="svn_work.gif" />了,而是<input type="image" src="/Img.ashx?img=svn_work.gif" />,就是說(shuō)通過(guò)img,ashx來(lái)讀取圖片。別人盜鏈的話(huà)要用下面代碼:<input type="image" src="http://www.jb51.NET/Img.ashx?img=svn_work.gif" />。

趕緊給自己的網(wǎng)站加上防盜鏈吧!

AspNet技術(shù)asp.net中利用ashx實(shí)現(xiàn)圖片防盜鏈的原理分析,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲乱色视频在线观看 | 国产偷窥盗摄一区二区 | 久久综合中文字幕无码 | 伦理片2499电影伦理片 | 98久久无码一区人妻A片蜜 | 午夜国产在线观看 | 亚洲精品一线二线三线无人区 | 欧美一级成人影院免费的 | 免费中文字幕视频 | 久久88综合 | 国产午夜在线观看视频播放 | 精品无人区麻豆乱码1区2 | 久久久久综合一本久道 | 最近中文字幕高清中文 | 伊人久久大香线蕉综合影 | 亚洲日韩天堂在线中文字幕 | 中文字幕AV在线一二三区 | 牛牛在线国产精品 | 18禁黄无遮挡禁游戏在线下载 | 俄罗斯美幼 | 2020国产成人精品视频人 | 国产成人在线观看免费网站 | 欧美另类一区 | 国产乱妇乱子在线播视频播放网站 | 蜜臀AV999无码精品国产 | 国产又色又爽又刺激在线播放 | 一本道高清码v京东热 | 高hh乱亲女真实 | 欧美成 人 网 站 免费 | 视频一区视频二区ae86 | 琪琪伦伦影院理论片 | 色悠久久久久综合欧美99 | 久久婷五月综合色啪网 | yellow日本高清在线 | 四虎影视国产精品亚洲精品hd | 久久不射网 | 免费毛片试看 | 久久久久综合一本久道 | 国产精品人妻无码久久久蜜桃 | 国产精品无码视频一区二区 | 伦理片97影视网 |