關(guān)于防盜鏈與跨域訪問(wèn)

關(guān)于防盜鏈與跨域訪問(wèn)

最近用阿里云的時(shí)候發(fā)現(xiàn)一些防盜鏈與跨域訪問(wèn)的一些坑,填完坑之后稍微整理一下。

防盜鏈

防盜鏈?zhǔn)抢脼g覽器Http請(qǐng)求頭Referer,告訴服務(wù)器誰(shuí)訪問(wèn)資源,由服務(wù)器作判斷,如果符合一定規(guī)則則返回?cái)?shù)據(jù),否則返回403。

Flash player跨域訪問(wèn)

Flash player訪問(wèn)指定資源之前,訪問(wèn)根URL下的crossdomain.xml,例如訪問(wèn)資源http://test.com/path/to/a.m3u8之前會(huì)訪問(wèn)http://test.com/crossdomain.xml,由Flash player解析并判斷是否可以進(jìn)行跨域訪問(wèn)。

crossdomain.xml的范例

<?xml version="1.0"?>   
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="master-only"/>
    <allow-access-from domain="*.yy.com"/>
    <allow-access-from domain="*.yypm.com"/>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*.yy.com" headers="SOAPAction"/>
</cross-domain-policy>

瀏覽器跨域訪問(wèn)

具體參照http://www.ruanyifeng.com/blog/2016/04/cors.html

Flash player與OSS的跨域訪問(wèn)

如果需要Flash player跨域訪問(wèn)OSS里面的視頻資源,需要設(shè)置:

  1. 編寫(xiě)crossdomain.xml,放在bucket的根目錄下
  2. 將域名添加到防盜鏈配置中(如果防盜鏈配置為空,則忽略)
  3. 將域名規(guī)則添加到跨域(Cors)配置規(guī)則中(如果規(guī)則列表為空,則忽略)

OSS與CDN的防盜鏈

OSS和CDN的防盜鏈配置是分離的。配置可以分為下面幾種情況:

  1. 只配置OSS
    安全性一般,可能會(huì)通過(guò)CDN的域名掃描到資源,而且會(huì)因CDN的緩存配置導(dǎo)致有時(shí)候200有時(shí)候403的情況。
  2. 只配置CDN
    安全性一般,可能會(huì)通過(guò)OSS的域名掃描到資源。
  3. OSS和CDN都配置但不保持一致
    很容易混亂,出問(wèn)題很難查,不建議。
  4. OSS和CDN都配置并且保持一致
    這是最安全的做法,但保持一致成本較高。

總的來(lái)說(shuō),1和2的安全性是一致的,所以如果安全性不高選擇2,安全性高則選擇4。

OSS與CDN的跨域配置

OSS和CDN的跨域配置是分離的。配置可以分為下面幾種情況:

  1. 只配置OSS
    安全性一般,可能會(huì)通過(guò)CDN的域名掃描到資源,而且這樣做會(huì)因CDN的緩存配置導(dǎo)致有時(shí)候200有時(shí)候403的情況。
  2. 只配置CDN
    安全性一般,可能會(huì)通過(guò)OSS的域名掃描到資源。
  3. OSS和CDN都配置但不保持一致
    很容易混亂,出問(wèn)題很難查,不建議。
  4. OSS和CDN都配置并且保持一致
    這是最安全的做法,但保持一致成本較高

總的來(lái)說(shuō),1和2的安全性是一致的,所以如果安全性不高選擇2,安全性高則選擇4。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《老男孩Linux運(yùn)維》筆記 隱藏Nginx軟件版本號(hào) 一般來(lái)說(shuō),軟件的漏洞都和版本有關(guān)。因此要盡量隱藏對(duì)訪問(wèn)用戶(hù)...
    Zhang21閱讀 3,893評(píng)論 0 28
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • ajax作為前端開(kāi)發(fā)必需的基礎(chǔ)能力之一,你可能會(huì)使用它,但并不一定懂得其原理,以及更深入的服務(wù)器通信相關(guān)的知識(shí)。在...
    蕭玄辭閱讀 887評(píng)論 0 0
  • 一、總目錄 1,資源主頁(yè) 資源主頁(yè):用于添加七牛各個(gè)產(chǎn)品模塊,包含有:對(duì)象存儲(chǔ)、自定義數(shù)據(jù)處理V2、多媒體處理、融...
    森林死了一只熊閱讀 2,449評(píng)論 0 4
  • 推薦閱讀前文,第一部《黃金心愿樹(shù)》,第二部《太慢兒當(dāng)鋪》。 1 “我可不想再去什么藥店了?!边@些年感覺(jué)吃的藥比飯多...
    嬰兒看世界閱讀 707評(píng)論 8 10

友情鏈接更多精彩內(nèi)容