Html頁面的標籤圖片沒法顯示

若是你也曾複製過一些相似騰訊、百度等各大網站的文章,你會發現複製下來發表以後常常出現圖片沒法顯示,這是什麼緣由呢?javascript

例如:

<body>
    <img src="http://upload.techweb.com.cn/2017/0106/1483690985396.jpg" />
</body>

解決方案

使用Referer Meta標籤控制referer,在H5 的 header加入metahtml

<meta name="referrer" content="never">

 便可修復!html5

HTTP_REFERER介紹

HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,通常會帶上Referer,告訴服務器我是從哪一個頁面連接過來的,服務器基此能夠得到一些信息用於處理。 
 java

簡介web

      簡而言之,HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,通常會帶上Referer,告訴服務器我是從哪一個頁面連接過來的,一般被網站用來統計用戶來源,是從搜索頁面來的,仍是從其餘網站連接過來,或是從書籤等訪問,以便網站合理定位,服務器藉此能夠得到一些信息用於處理。好比從我主頁上連接到一個朋友那裏,他的服務器就可以從HTTP Referer中統計出天天有多少用戶點擊我主頁上的連接訪問他的網站。 


      Referer有時也被用做防盜鏈, 即下載時判斷來源地址是否是在網站域名以內, 不然就不能下載或顯示,不少網站,如天涯就是經過Referer頁面來判斷用戶是否可以下載圖片。 


      固然,對於某些惡意用戶,也可能僞造Referer來得到某些權限,在設計網站時要考慮到這個問題。 


      Referer 還可用作電子商務網站的安全,在提交信用卡等重要信息的頁面用referer來判斷上一頁是否是本身的網站,若是不是,多是黑客用本身寫的一個表單,來提交,爲了能跳過你上一頁裏的javascript的驗證等目的。 


      可是,注意不要把Rerferer用在身份驗證或者其餘很是重要的檢查上,由於Rerferer很是容易在客戶端被改變。 
 瀏覽器

1、去除http頭部的Referer信息,防止重要網址被瀏覽器「偷偷的泄漏」安全

      有時候咱們須要在點擊連接時候去除http頭部的referer屬性,好比在網站後臺有連接到外部網站的地方,若不去除的話很容易暴漏咱們的後臺地址!服務器

referer是由客戶端的瀏覽器發送到服務器上的,且在客戶端能夠經過document.refererrer 來獲取,也就是說referer的發送其實是一個瀏覽器行爲,發送與否的決定權實在瀏覽器手裏。 
 網站

下面幾種狀況下,能夠控制瀏覽器是否發送referer:url

  1. 當網站使用refresh字段進行跳轉的時候,大多數瀏覽器不發送referer; 
     
  2. 從用戶從一個HTTPS的網站點擊連接到另外一個HTTP的網站時,不發送referer; 
     
  3. html5中,a標籤的rel = 「noreferrer」, 可讓瀏覽器不發送referer; 
     
  4. 使用Data URI scheme連接的,瀏覽器也不發送referer; 
     
  5. 使用Content Security Policy, 也可讓瀏覽器不發送referer; 
     
  6. 在html頭部中使用meta標籤來控制不讓瀏覽器發送referer; 
     
  7. 用戶手輸入網址或是從收藏夾、書籤中訪問。 
     

技術細節

referer 的 metedata 參數能夠設置爲如下幾種類型的值:

  1. never 
     
  2. always 
     
  3. origin 
     
  4. default

    瀏覽器後續發起 http 請求的時候,會按照 content 的值,作出以下反應(下面 referer-policy 的值即 meta 標籤中 content 的值):

1.若是 referer-policy 的值爲never:刪除 http head 中的 referer;

2.若是 referer-policy 的值爲default:若是當前頁面使用的是 https 協議,而正要加載的資源使用的是普通的 http 協議,則將 http header 中的 referer 置爲空;

3.若是 referer-policy 的值爲 origin:只發送 origin 部分;

4.若是 referer-policy 的值爲 always:不改變http header 中的 referer 的值,注意:這種狀況下,若是當前頁面使用了 https 協議,而要加載的資源使用的是 http 協議,加載資源的請求頭中也會攜帶 referer。

例子

一、若是頁面中包含了以下 meta 標籤,全部從當前頁面中發起的請求將不會攜帶 referer:

<meta name="referrer" content="never">

 

二、若是頁面中包含了以下 meta 標籤,則從當前頁面中發起的 http請求將只攜帶 origin 部分(注:根據原文中的語境,我理解這裏的 origin 是包含了 schema 和 hostname 的部分 url,不包含 path 等後面的其餘 url 部分),而不是完整的 URL :

<meta name="referrer" content="origin">

 

注意:在使用本文中所述的 meta 標籤的時候,瀏覽器原有的 referer 策略將被打破,好比從 http 協議的頁面跳轉到 https 的頁面的時候,若是設置了適當的值,也會攜帶 referer。

相關文章
相關標籤/搜索