gpt4 book ai didi

ASP.NET 图片防盗链的实现原理分析

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ASP.NET 图片防盗链的实现原理分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

那么我来介绍下图片放盗链的一个方法  首先,添加个httpHandlers请求,WEBCONFIG部分配置节如下:  <httpHandlers>  <add verb="*" path="*.jpg" type="myhandler,App_Code"/>  </httpHandlers> 注意:对应于system.web之下,别添错了哦!  然后添加个class,取名为myhandler继承于IHttpHandler  class原型如下:  。

复制代码代码如下

using System;  using System.Data;  using System.Configuration;  using System.Web;  using System.Web.Security;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.UI.WebControls.WebParts;  using System.Web.UI.HtmlControls;  public class myhandler : IHttpHandler  {  public void ProcessRequest(HttpContext context)  {  string FileName = context.Server.MapPath(context.Request.FilePath);  if (context.Request.UrlReferrer.Host == null)  {  context.Response.ContentType = "image/JPEG";  context.Response.WriteFile("~/images/no.png");//被替换图片  }  else  {  if (context.Request.UrlReferrer.Host.IndexOf("localhost") > -1)//这里是你的域名  {  context.Response.ContentType = "image/JPEG";  context.Response.WriteFile(FileName);  }  else  {  context.Response.ContentType = "image/JPEG";  context.Response.WriteFile("~/images/no.png");  }  }  }  public bool IsReusable  {  get { return true; }  }  public myhandler()  {  }  }  。

myhandler继承自IHttpHandler实现了对url来源来判断jpg图片是否被盗链,本class中以localhost为例,修改localhost和images/no.png参数即可  次方法也可应用于URL伪静态。 下一次聊下图片与ASP.NET程序的服务器分离,欢迎大家光临本站。 下面是补充 所谓URL静态化(声明下:这里说的是伪静态,真正网页静态化就不说了可以用最简单的请求返回response实现,但好像久而久之数据量会很庞大,所以就不说了)就是把动态的网页看起来像静态的一样。如:aspnet.aspx?id=5 静态化:aspnet-5.html或/aspnet/5  SEO(搜索引擎优化),更青睐于静态化的网页,所以网页静态化对于专业的SEOer来说还是必须掌握的,下面我告诉大家一个方法来实现在ASP.NET下面的网页静态化。  这个DEMO实现了网页的URL的伪静态,其原理通过匹配url的正则,来进行网页重定向,这个DEMO里面有这么个config,<add virtualUrl="~/microsoft*.*" destinationUrl="~/default.aspx" />  也就是说请求microsoft.html,microsoft.shtml,microsoft.do都会映射到default.aspx  这个正则把URL重定向一个页面,没有带参数,我先来介绍下带参数如何实现,下面我加了这个规则  <add virtualUrl="~/default-([0-9]*)" destinationUrl="~/default.aspx?id=$1" />  这个正则匹配了,这样的URL(假设http://www.xx.com/是你的域名), www.xx.com/microsoft-123 映射到www.xx.com/default.aspx?id=123  那么就实现了参数的传递  多个参数的传递可以用如下正则实现,各位高手想用什么样的静态化规则就自己写正则怎么实现吧,下面我给出一种目录化的URL伪静态规则  <add virtualUrl="~/default/([a-zA-Z0-9]*)/([a-zA-Z0-9]*)" destinationUrl="~/default.aspx?par1=$1&par2=$2" />这里要注意的就是&(&) 。

最后此篇关于ASP.NET 图片防盗链的实现原理分析的文章就讲到这里了,如果你想了解更多关于ASP.NET 图片防盗链的实现原理分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com