.net使用httpHandler添加图片防盗链

.net使用httpHandler添加图片防盗链
1. 配置web.config:

  <!--图片添加水印的配置-->
                <httpHandlers>
                        <add verb="*" path="*.jpg" type="LinkHandler" />
                </httpHandlers>
  <!--图片添加水印的配置结束-->

2. OutLinkHandler.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.IO;

/// <summary>
///HttpHandler 实现防盗链效果
/// </summary>
public class LinkHandler:IHttpHandler
{
    public LinkHandler() { }
            //1. 设置不能允许重用
            public bool IsReusable
            {
                get { return false; }
            }
            //2. 编写最终处理程序
            public void ProcessRequest(HttpContext context)
            {
                //context.Request.UrlReferrer.Host   //主机名
                //context.Request.Url.Port  //端口号
 <wbr>  <wbr>  <wbr>  <wbr>  <wbr>  <wbr>  <wbr>  <wbr> //context.Request.UrlReferrer.Authority   <wbr>//服务器端IP

                //根据Ip地址和端口号判断
                if (context.Request.UrlReferrer.Authority == "192.168.123.184" &&
                context.Request.UrlReferrer.Port == context.Request.Url.Port)
                    {
                            context.Response.ContentType="image/jpeg";
                            context.Response.WriteFile(context.Request.PhysicalPath);
                    }
                else
                    {
                    context.Response.ContentType="image/jpeg";
                    context.Response.WriteFile(context.Request.PhysicalApplicationPath+"images/1/LinkError.jpg");
                    }
            }
}
时间: 2024-11-05 18:47:15

.net使用httpHandler添加图片防盗链的相关文章

asp.net MVC 网站图片防盗链的几种方法

目录 1. 通过 URL Rewrite Module 组件 2. 通过 nginx 图片防盗链 3.自定义 HttpHandler 处理 4. 通过 MVC 自定义路由规则防盗链 5. 通过 MVC 自定义 RouteHandler 防盗链 6. 通过 HttpModModule 防盗链 7. 涉及知识点,相关资源 自己网站上的图片被别的网站盗用是一件很令人厌恶的事情,下面是处理图片盗链的几种方法. 在这里先交代一下环境,我用的是 MVC4 ,IIS7 应用程序池为集成模式,以下配置都是基于此

防盗链Nginx设置图片防盗链,设置无效的请仔细看红字

*******************************************************************切记,替换的图片地址要使用没有防盗链的网站图片,否则由于替换的图片其实也处于防盗链情况下,会造成仍旧无法显示设置的图片.******************************************************************* 一.全站图片防盗链 在/usr/local/nginx/conf/nginx.conf文件要添加防盗链的ser

Nginx实现图片防盗链(referer指令)

什么是图片盗链   每张图片在浏览器中都有对应的图片地址,在浏览器中输入这个地址是可以直接拿到图片. 图片盗链,就是盗用者在他的站上需要显示我们的图片,他没有把图片拿下来,放到他的服务器上, 而是直接就用我们的,图片地址,来请求到我们的服务器来拿图片,流量产生在我们这边. referer referer指令通过检测访问图片的来源,来做出一些控制. 图片访问的来源 通过谷歌/百度访问 通过浏览器直接访问 本站点的访问 来自非法的域名访问 referer nginx 模块 ngx_http_refe

几种图片防盗链的方法

研究了一下图片防盗链,没时间总结,贴上几遍文章大家看看吧. http://paranimage.com/10-kinds-of-anti-picture-method-of-navigating-to-wwwsinacomcn/ http://davidwalsh.name/mootools-image-protector-dwprotector http://davidwalsh.name/image-protector-plugin-for-jquery 使用filter进行防盗链 http

Nginx图片防盗链的方式

location ~* \.(gif|jpg|jpeg|png|ico)$ { valid_referers none blocked www.oschina.net oschina.net; if ($invalid_referer) {     rewrite ^/ /daolian.jpg; } access_log off; root /opt/web; expires 5d; break; 第一行:gif|jpg|jpeg|png|ico 表示对gif,jpg,jpeg,png,ico

Nginx修改配置实现图片防盗链

一般情况下,防盗链是针对软件下载和图片的,由于一般的站点不提供资源下载,所以本文主要是针对图片的防盗链 1.如果对全站图片做防盗链,至少需要一个另外的域名存放指向图片.因为如果对全站图片做了防盗链,包括盗链提示图片在内的所有图片都不可能显示. 此类情况修改 /usr/local/nginx/conf/nginx.conf 文件 2.对单独域名配置图片防盗链,个人比较推荐,一是便于控制,二是可以重新创建一个域名在同服务器上用来存放盗链提示图片. 此类情况修改 /usr/local/nginx/co

ASP.NET 实现简单的图片防盗链介绍

在此,网站图片防盗链的方法是,通过获取Http请求头中的 Referer 标头与本网站域名比较,来判断用户是否来自本站跳转过来的 . 创建一个全局处理程序,用来处理images目录下的图片的直接请求: using System; using System.Web; /// <summary> ///DaoLian 的摘要说明 /// </summary> public class DaoLian:IHttpHandler { public bool IsReusable { get

nginx服务器图片防盗链的方法

nginx服务器图片防盗链的方法<pre> location ~* \.(gif|jpg|png|jpeg)$ { expires 30d; valid_referers *.shuchengxian.com www.shuchengxian.com; if ($invalid_referer) { rewrite ^/ http://www.shuchengxian.cn/404.jpg; } }</pre>代码解释: <pre>//其中“gif|jpg|jpeg|p

HttpHandler实现网页图片防盗链

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 /// <summary> 7 /// HotLinkedHandler 的摘要说明 8 ///1.后台代码 9 /// </summary> 10 public class HotLinkedHandler:IHttpHandler 11 { 12 13 public bool IsReu