日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用防盜鏈策略避免非法流量盜用

更新時間: 2024-08-01 15:02:43

通過在OSS中配置基于請求標(biāo)頭Referer的訪問規(guī)則,可以阻止某些Referer訪問您的OSS文件,從而防止其他網(wǎng)站盜用您的文件,并避免由此引起的不必要的流量費用增加。

使用場景

  • 禁止未經(jīng)授權(quán)的使用:保護(hù)圖片、視頻、音頻等敏感或有版權(quán)的文件不被未經(jīng)授權(quán)的網(wǎng)站下載或訪問。

  • 節(jié)省帶寬和資源消耗:通過防止盜鏈,避免其他網(wǎng)站直接鏈接到自己的資源文件,減少了非法訪問帶來的帶寬消耗和服務(wù)器資源壓力。

  • 付費內(nèi)容保護(hù):在提供付費內(nèi)容的場景中,防盜鏈可以確保只有購買者才能訪問和使用付費內(nèi)容,防止非法傳播和盜版。

  • 合作伙伴授權(quán)訪問:某些情況下,需要與合作伙伴網(wǎng)站共享資源或數(shù)據(jù),通過防盜鏈可以限制只有特定合作伙伴可以訪問和使用共享資源。

基本概念

  • 盜鏈:是指在一個網(wǎng)頁內(nèi),以鏈接的形式嵌入另一個網(wǎng)頁的內(nèi)容,從而獲取他人的資源而不經(jīng)過授權(quán)。

  • 防盜鏈:在OSS中,是指通過配置Referer來防止其他非法網(wǎng)站或用戶盜用您的OSS資源。

  • Referer:HTTP請求頭部中的一個字段,包含了請求的來源頁面的URL。通過檢查Referer頭部的值,可以判斷請求的來源頁面。Referer檢查通常用于以下兩種場景:防盜鏈。例如,網(wǎng)站訪問自己的圖片服務(wù)器,圖片服務(wù)器通過Referer來判斷是否為自己的域名,如果是就繼續(xù)訪問,不是則攔截;數(shù)據(jù)統(tǒng)計。例如,統(tǒng)計用戶是從哪個鏈接過來訪問的。

  • 空Referer:HTTP請求中Referer頭部的內(nèi)容為空,或者HTTP請求中不包含Referer頭部。如果存在以下兩種情況,則Referer為空:當(dāng)請求并不是由鏈接觸發(fā)產(chǎn)生。例如直接通過瀏覽器輸入地址打開頁面;從HTTPS頁面上的鏈接訪問到非加密的HTTP頁面時,在HTTP頁面上是檢查不到Referer的。

  • 白名單:一種限制只允許特定來源訪問資源的列表。在防盜鏈中,可以配置一個白名單來定義允許訪問資源的Referer來源。

  • 黑名單:一種限制阻止特定來源訪問資源的列表。在防盜鏈中,可以配置一個黑名單來定義阻止訪問資源的Referer來源。

  • QueryString:HTTP請求中的一部分,用于在URL中傳遞參數(shù)信息。它通常包含在URL的問號后面,以鍵值對的形式表示。

功能原理

當(dāng)瀏覽器向OSS發(fā)送請求時,請求標(biāo)頭中將包含Referer,用于告知OSS該請求的頁面鏈接來源。如果配置了防盜鏈,OSS將根據(jù)請求的Referer與配置的Referer規(guī)則來判斷是否允許此請求:

  • 如果瀏覽器附帶的Referer與黑名單Referer匹配,或與白名單Referer不匹配,則OSS將拒絕該請求的訪問。

  • 如果瀏覽器附帶的Referer與白名單Referer匹配,則OSS將允許該請求的訪問。

image

例如,某個Bucket配置了白名單Referer為https://10.10.10.10

  • 用戶A在https://10.10.10.10嵌入test.jpg圖片,當(dāng)瀏覽器請求訪問此圖片時會帶上https://10.10.10.10的Referer,此場景下OSS將允許該請求的訪問。

  • 用戶B盜用了test.jpg的圖片鏈接并將其嵌入https://192.168.0.0,當(dāng)瀏覽器請求訪問此圖片時會帶上https://192.168.0.0的Referer,此場景下OSS將拒絕該請求的訪問。

判斷邏輯

開啟防盜鏈后,OSS會根據(jù)請求Header中的Referer地址判斷訪問來源的方式,確定是否允許當(dāng)前請求。具體判斷邏輯如下。

image
  1. 判斷請求Referer是否為空。

    • 如果請求Referer為空,則查看是否允許空Referer。

      • 如果允許空Referer,則請求被允許。

      • 如果不允許空Referer,且白名單Referer列表為空,則請求被允許。

      • 如果不允許空Referer,且白名單Referer列表不為空,則請求被拒絕。

    • 如果請求Referer不為空,則執(zhí)行步驟2

  2. 判斷黑名單Referer列表是否為空。

    • 如果黑名單Referer列表為空,且白名單Referer列表為空,則請求被允許。

    • 如果黑名單Referer列表為空,且白名單Referer列表不為空,則跳過步驟3,執(zhí)行步驟4。

    • 如果黑名單Referer列表不為空,則執(zhí)行步驟3

  3. 遍歷黑名單Referer列表。

    • 如果黑名單Referer列表存在匹配條目,則請求被拒絕。

    • 如果黑名單Referer列表不存在匹配條目,則執(zhí)行步驟4。

  4. 遍歷白名單Referer列表。

    • 如果白名單Referer列表存在匹配條目,則請求被允許。

    • 如果白名單Referer列表不存在匹配條目,則請求被拒絕。

注意事項

  • 僅支持針對整個Bucket設(shè)置防盜鏈,不支持為Bucket的某一個文件或文件夾設(shè)置防盜鏈。

  • 僅當(dāng)通過簽名URL訪問Object(調(diào)用GetObject接口)或者匿名訪問Object時,OSS會進(jìn)行防盜鏈驗證。

  • 當(dāng)請求的Header中包含Authorization字段,OSS不會進(jìn)行防盜鏈驗證。

  • 一個Bucket可以支持多個Referer參數(shù),這些參數(shù)之間通過,分隔。

  • 為Bucket開啟防盜鏈后,所有權(quán)限(private、public-read、public-read-write)的Bucket都會檢查Referer字段。

  • 為Bucket開啟防盜鏈后,使用OSS的Bucket域名或自定義域名預(yù)覽MP4文件時,必須在Referer白名單中添加相應(yīng)的域名,并允許空Referer。因為瀏覽器會發(fā)送一個帶Referer和一個不帶Referer的請求,兩個請求都成功才能正常播放視頻。預(yù)覽非MP4文件時,只需允許空Referer。

錯誤碼

相關(guān)文檔

上一篇: 常見問題 下一篇: 查看來自其他網(wǎng)站的OSS請求的Referer
阿里云首頁 對象存儲 相關(guān)技術(shù)圈