十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
可以基于OSS的防盜鏈,目前OSS提供的防盜鏈的方法主要有兩種:
創(chuàng)新互聯(lián)于2013年開始,先為林口等服務(wù)建站,林口等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為林口企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
設(shè)置Referer??刂婆_(tái),SDK都可以操作,適合不想寫代碼的用戶,也適合喜歡開發(fā)的用戶;
簽名URL,適合喜歡開發(fā)的用戶。 本文會(huì)給一個(gè)控制臺(tái)設(shè)置Referer防盜鏈的具體事例,也會(huì)基于PHP SDK給一個(gè)動(dòng)態(tài)生成簽名URL防盜鏈的示例。
通過(guò)Referer防盜鏈的具體步驟
第一步:進(jìn)入 OSS 管理控制臺(tái)界面。
第二步:?jiǎn)螕裟繕?biāo)存儲(chǔ)空間的名稱進(jìn)入存儲(chǔ)空間管理頁(yè)面。
第三步:?jiǎn)螕?Bucket 屬性 防盜鏈設(shè)置。
第四步:?jiǎn)螕簟霸O(shè)置”添加白名單網(wǎng)址并設(shè)置是否允許其為空。
請(qǐng)點(diǎn)擊輸入圖片描述
第五步:?jiǎn)螕簟疤峤弧北4鎸?duì)防盜鏈的設(shè)置。
舉例
對(duì)于一個(gè)名為test-1-001的存儲(chǔ)空間,設(shè)置其referer 白名單為 。則只有 referer 為的請(qǐng)求才能訪問(wèn)oss-example這個(gè)存儲(chǔ)空間中的對(duì)象。
簽名URL實(shí)現(xiàn)步驟
簽名URL的原理和實(shí)現(xiàn)方法見OSS開發(fā)人員指南授權(quán)第三方下載。 簽名URL的實(shí)現(xiàn)步驟:
1、將Bucket的權(quán)限設(shè)置為私有讀;
2、 根據(jù)期望的超時(shí)時(shí)間(簽名URL失效的時(shí)間)生成簽名。
具體實(shí)現(xiàn)
第一步:安裝PHP最新代碼,參考PHP SDK文檔;
第二步:實(shí)現(xiàn)生成簽名URL并將其放在網(wǎng)頁(yè)中,作為外鏈?zhǔn)褂玫暮?jiǎn)單示例:
?phprequire 'vendor/autoload.php';#最新PHP提供的自動(dòng)加載use OSS\OssClient;#表示命名空間的使用$accessKeyId="a5etodit71tlznjt3pdx7lch";#AccessKeyId,需要使用用戶自己的$accessKeySecret="secret_key";#AccessKeySecret,需要用用戶自己的$endpoint="oss-cn-hangzhou.aliyuncs.com";#Endpoint,根據(jù)Bucket創(chuàng)建的區(qū)域來(lái)選擇,本文中是杭州$bucket = 'referer-test';#Bucket,需要用用戶自己的$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);$object = "aliyun-logo.png";#需要簽名的Object$timeout = 300;#期望鏈接失效的時(shí)間,這里表示從代碼運(yùn)行到這一行開始的當(dāng)前時(shí)間往后300秒$signedUrl = $ossClient-signUrl($bucket, $object, $timeout); #簽名URL實(shí)現(xiàn)的函數(shù)$img= $signedUrl;#將簽名URL動(dòng)態(tài)放到圖片資源中并打印出來(lái)$my_html = "html";$my_html .= "img src=\"".$img. "\" /";$my_html .= "p".$img."/p";$my_html .= "/html";echo $my_html;?
第三步:通過(guò)瀏覽器訪問(wèn) 多請(qǐng)求幾次會(huì)發(fā)現(xiàn)簽名的URL會(huì)變,這是正常的。主要是因?yàn)檫^(guò)期時(shí)間的改變導(dǎo)致的。這個(gè)過(guò)期時(shí)間是鏈接失效的時(shí)間,是以u(píng)nix time的形式展示的。 如:Expires=189999,可以將這個(gè)時(shí)間轉(zhuǎn)換成本地時(shí)間。在Linux下的命令為date -d@189999,也可以在網(wǎng)絡(luò)上找工具自行轉(zhuǎn)換。
特別說(shuō)明
簽名URL可以和Referer白名單功能一起使用。
如果簽名URL失效的時(shí)間限制在分鐘內(nèi),盜鏈用戶即使偽造了Referer也必須拿到簽名的URL,且必須在有效的時(shí)間內(nèi)才能盜鏈成功。 相比只使用Referer來(lái)說(shuō),增加了盜鏈的難度。 也就是說(shuō)簽名URL配合Referer白名單功能,可以增加防盜鏈的效果。
防盜鏈總結(jié),基于OSS的防盜鏈最佳實(shí)踐點(diǎn)如下:
使用三級(jí)域名URL,例如referer-test.oss-cn-hangzhou.aliyuncs.com/aliyun-logo.png,安全性比綁定二級(jí)域名更高。三級(jí)域名方式能夠提供Bucket級(jí)別的清洗和隔離,能夠應(yīng)對(duì)被盜鏈后的流量暴漲的情況,也能避免不同Bucket間的互相影響,最終提高業(yè)務(wù)可用性;
如果使用自定義域名作為連接,CNAME也請(qǐng)綁定到三級(jí)域名,規(guī)則是bucket + endpoint。假如你的bucket名為test,三級(jí)域名則為test.oss-cn-hangzhou.aliyuncs.com;
對(duì)Bucket設(shè)定盡可能嚴(yán)格的權(quán)限類別。例如提供公網(wǎng)服務(wù)的Bucket設(shè)置為public-read或private,禁止設(shè)置為public-read-write。Bucket權(quán)限參見訪問(wèn)控制;
對(duì)訪問(wèn)來(lái)源進(jìn)行驗(yàn)證,根據(jù)需要設(shè)置合適的Referer白名單;
如果需要更嚴(yán)格的防盜鏈方案,請(qǐng)參考簽名的URL方案;
記錄Bucket訪問(wèn)日志,能夠及時(shí)發(fā)現(xiàn)盜鏈活動(dòng)和驗(yàn)證防盜鏈方案的有效性。 訪問(wèn)日志參見設(shè)置訪問(wèn)日志記錄。
對(duì)象存儲(chǔ)OSS支持對(duì)存儲(chǔ)空間(Bucket)設(shè)置防盜鏈,即通過(guò)對(duì)訪問(wèn)來(lái)源設(shè)置白名單的機(jī)制,避免OSS資源被其他人盜用。
設(shè)置向?qū)?
參考設(shè)置:
alist訪問(wèn)面板打不開 - 百度知道
1個(gè)回答回答時(shí)間:2022年12月16日
最佳回答:1、網(wǎng)絡(luò)設(shè)置的問(wèn)題。2、DNS服務(wù)器的問(wèn)題。3、瀏覽器本身的問(wèn)題以及網(wǎng)絡(luò)防火墻的問(wèn)題。
百度知道
Alist首頁(yè)和管理頁(yè)都是空白的解決過(guò)程 - 郵莓生活
2022年8月1日第一:登錄SSH,編輯config.json文件,默認(rèn)安裝在/opt/alist/data/第二:修改 "assets": "...
郵莓生活
alist官網(wǎng)打不開 - 移動(dòng)設(shè)備專家答疑 - 百度問(wèn)一問(wèn)
5分鐘內(nèi)回復(fù) 多年專業(yè)經(jīng)驗(yàn)
alist官網(wǎng)打不開
馬上提問(wèn)
ashford網(wǎng)站打不開
136人正在咨詢
瀏覽器打不開steam官網(wǎng)
101人正在咨詢
為什么打不開啵樂(lè)
128人正在咨詢
ashford網(wǎng)站打不開
136人正在咨詢
優(yōu)選電子數(shù)碼答主在線答疑
在線
數(shù)碼達(dá)人霜霜
Alist首頁(yè)和管理頁(yè)都是空白的解決過(guò)程
2022-08-01
6124
分享
文章目錄[隱藏]
前言
解決過(guò)程
自行解決
assets
NPM
GitHub
已解決
總結(jié)
前言
先要感謝開源項(xiàng)目Alist的作者,無(wú)私奉獻(xiàn),開發(fā)出了這么優(yōu)秀的作品,之前本博客有介紹過(guò)掛載阿里網(wǎng)盤和夸克onedrive等網(wǎng)盤,實(shí)現(xiàn)了webdav
《折騰Alist掛載阿里云盤*2+onedrive+夸克,實(shí)現(xiàn)本地webdav》
還實(shí)現(xiàn)了SSL證書的三種方式,實(shí)現(xiàn)了https加密訪問(wèn)
《Alist使用https域名證書SSL的三種方法》
但是,最近也不知道是升級(jí)到最新版本,還是什么原因,以現(xiàn)今天打開是空白頁(yè)面了,不管是前臺(tái),還是后臺(tái),都全空白,也沒(méi)有報(bào)錯(cuò),
就不截圖了,空白頁(yè)面應(yīng)該都能從文字了解到
解決過(guò)程
一開始,先來(lái)個(gè)重啟服務(wù)systemctl restart alist,問(wèn)題依舊
接著,重啟服務(wù)器,reboot,問(wèn)題依舊
到甲骨文的后臺(tái)重新引導(dǎo),問(wèn)題依舊
谷歌找一下,好像說(shuō)是CDN引起的問(wèn)題,開源項(xiàng)目的issue里也有遇到同樣問(wèn)題的,有熱心網(wǎng)友已提出了解決方法,這里實(shí)際操作并記錄一下
打開console,發(fā)現(xiàn)確實(shí)兩個(gè)js文件沒(méi)有加載出來(lái)
打開網(wǎng)頁(yè)空白,無(wú)法獲取靜態(tài)資源,瀏覽器控制臺(tái)顯示如下:
GET net::ERR_ABORTED 403
GET net::ERR_ABORTED 403
估計(jì)是餓了么的阿里云oss開了防盜鏈引起不讓使用所至
自行解決
第一:登錄SSH,編輯config.json文件,默認(rèn)安裝在/opt/alist/data/
第二:修改 "assets": ""為
“/” 即使用本地
“其它可用的”
assets
使用的靜態(tài)資源位置。這是動(dòng)態(tài)可變化的,現(xiàn)有的靜態(tài)資源在 npm 和 GitHub 上都有托管,它們的位置分別是:
所以你可以使用任何 npm 或者 github 的 cdn 來(lái)作為路徑。默認(rèn)使用餓了么反代的 unpkg 的 cdn(阿里云 cdn): ,$version在程序中會(huì)自動(dòng)替換為前端的發(fā)行版本。在這里列舉一些其他的可用的 assets:
NPM
jsdelivr npm:
unpkg npm:
tianli jsdelivr npm(騰訊云cdn):
GitHub
jsdelivr github:
tianli jsdelivr github(騰訊云cdn):
第三:systemctl restart alist 重啟alist
已解決
總結(jié)