zoukankan      html  css  js  c++  java
  • ASP.NET处理管道之防盗链

    盗链就是在用户向网站a请求网站资源时,网站a将网站资源的路径填写为b网站资源的地址,用户将直接看到网站a上显示着网站b的资源,从而造成盗链。

    要防止盗链,就要用到处理管道中的技术

    在相应的模块类中:

            void app_BeginRequest(object sender, EventArgs e)
            {
                HttpContext context = (sender as HttpApplication).Context;
                HttpRequest request = context.Request;
                string path = request.PhysicalPath;//拿到请求的物理地址
                Uri url=request.Url;
                Uri urlRefer=request.UrlReferrer;
                //从物理地址中对比是不是要请求的jpg文件,并且将自己的域名和端口号和请求的进行对比,确定时外部请求还是内部请求
                if (path.EndsWith(".jpg")&&(url.Host!=urlRefer.Host||url.Port!=urlRefer.Port ))
                {
                    (sender as HttpApplication).CompleteRequest();//直接结束请求
                }
            }

    也可以将其中结束请求的代母替换掉,替换成显示自己准备好的图片:

    首先要引入命名空间:using System.Drawing;

    将if那部分改成:

                if (path.EndsWith(".jpg")&&(url.Host!=urlRefer.Host||url.Port!=urlRefer.Port ))
                {
                    Image img=Image.FromFile(context.Server.MapPath("~/alert.png"));
                    img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
                }

    这样,对方盗用的图片将全部变成你自己准备好的alert.png

  • 相关阅读:
    CodeForces 796D bfs
    2017 UESTC Training for Graph Theory
    CodeForces 776D 2-SAT
    CodeForces 776E 数学规律,欧拉
    希尔排序
    怎么把大数据的二维数组转化为一维数组????
    关于while((c=getchar()))的一些应用与思考
    uva 1586 Molar mass(Uva-1586)
    uva 1585 Score(Uva-1585)
    uva1584 Circular Sequence(Uva-1584)
  • 原文地址:https://www.cnblogs.com/jbdxbl/p/9348495.html
Copyright © 2011-2022 走看看