網站圖片防盜鏈
阿新 • • 發佈:2019-01-12
前言 |
我們在瀏覽網站時,每個網站都有很多圖片,這些圖片一般都在伺服器的某個資料夾儲存的。如果該網站沒有圖片防盜鏈我們右擊複製圖片地址(如下圖),然後在我們自己的網站上即可使用別人的圖片,這樣豈不是美滋滋,不用自己儲存圖片,用著別人的伺服器。圖片防盜鏈就是解決了這一問題。
思路 |
這個小功能其實很簡單。首先我們不能直接在前端呼叫圖片,我們可以先建立一個一般處理程式(.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" />
效果
總結 |
圖片防盜鏈主要的功能就是防止其它網站盜用你的圖片,非常實用的小功能,也是在開發過程中必不可少的。
如果還有更好的辦法,請大佬及時斧正我!