网站图片防盗链

前言

我们在浏览网站时,每个网站都有很多图片,这些图片一般都在服务器的某个文件夹存储的。如果该网站没有图片防盗链我们右击复制图片地址(如下图),然后在我们自己的网站上即可使用别人的图片,这样岂不是美滋滋,不用自己存储图片,用着别人的服务器。图片防盗链就是解决了这一问题。
网站图片防盗链_第1张图片

思路

这个小功能其实很简单。首先我们不能直接在前端调用图片,我们可以先创建一个一般处理程序(.ashx),把我们想要调用的图片放到里面,然后前端直接调用这个一般处理程序(.ashx),这是我们就可在后台判断是否是本网站的请求,判断域名和端口是否是自己的

代码

一般处理程序(.ashx)

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "image/jpeg";

            //判断是否是本网站的请求
            Uri referrerUrl = context.Request.UrlReferrer;

            //判断:urlReferrer的域名和端口是否是咱们自己网站的域名和端口
            Uri requestUrl = context.Request.Url;
            if (Uri.Compare(referrerUrl, requestUrl, UriComponents.HostAndPort, UriFormat.SafeUnescaped, StringComparison.CurrentCulture)==0)
            {
                context.Response.WriteFile("1.jpg");
            }
        }

Html调用它

    <img src="Handler1.ashx" />

效果
网站图片防盗链_第2张图片
我们右击图片复制图片地址,在创建一个网页,复制到img标签中

        <img src="http://localhost:64823/Handler1.ashx" />

效果
网站图片防盗链_第3张图片

总结

图片防盗链主要的功能就是防止其它网站盗用你的图片,非常实用的小功能,也是在开发过程中必不可少的。
如果还有更好的办法,请大佬及时斧正我!

你可能感兴趣的:(【C#】)