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" />

效果
在這裡插入圖片描述
我們右擊圖片複製圖片地址,在建立一個網頁,複製到img標籤中

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

效果
在這裡插入圖片描述

總結

圖片防盜鏈主要的功能就是防止其它網站盜用你的圖片,非常實用的小功能,也是在開發過程中必不可少的。
如果還有更好的辦法,請大佬及時斧正我!