最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于 Python實現(xiàn)云服務(wù)器的CDN域名遠(yuǎn)程鑒權(quán)配置

 更新時間:2022年05月16日 11:16:31   作者:? 夢想橡皮擦?  ?  
這篇文章主要介紹了基于 Python實現(xiàn)云服務(wù)器的CDN域名遠(yuǎn)程鑒權(quán)配置,文章內(nèi)容技術(shù)詳細(xì),具有一定的參考價值,需要的小伙伴可以參考一下

實戰(zhàn)場景

在項目實戰(zhàn)中,會碰到一種特定的運維場景,對CDN訪問進(jìn)行限制,一般手段是開啟 referer 防盜鏈,開啟 IP黑白名單,開啟UA黑白名單,本篇博客為大家展示的是通過我們自己的服務(wù)器,然后實現(xiàn)遠(yuǎn)程鑒權(quán),進(jìn)行更加細(xì)致的權(quán)限判定。

實現(xiàn)目標(biāo):

  • 請求CDN資源調(diào)用我們的鑒權(quán)服務(wù)器
  • 鑒權(quán)服務(wù)器獲取請求信息,并保存到日志中
  • 分別返回鑒權(quán)成功,鑒權(quán)失敗

開啟遠(yuǎn)程鑒權(quán)

在遠(yuǎn)程鑒權(quán)頁面打開【開關(guān)】之后,出現(xiàn)如下配置界面,這里相關(guān)細(xì)節(jié)描述如下:

  • 鑒權(quán)服務(wù)器地址:我們自己的服務(wù)器,地址可訪問,可以是域名也可以是IP地址;
  • 請求方法:支持 GET,POST,HEAD 三種請求;
  • 鑒權(quán)文件類型:多個文件類型用 | 分隔,例如 mp4|flv;
  • 保留參數(shù)設(shè)置:控制用戶請求 URL 中需要鑒權(quán)的參數(shù),用 | 分隔;
  • 自定義參數(shù):可以自定義參數(shù),可以使用CDN控制臺預(yù)設(shè)的變量,多個參數(shù)用 | 分隔,例如 token=$arg_token|vendor=ali_cdn
  • 保留請求頭設(shè)置:控制用戶請求頭中需要鑒權(quán)的參數(shù),可以保留所有參數(shù),也可以保留指定參數(shù);
  • 添加自定義參數(shù):給請求頭添加自定義參數(shù);
  • 鑒權(quán)狀態(tài)碼:成功200,失敗 403;
  • 鑒權(quán)超時時長:單位為毫秒,最長時長可以設(shè)置為3000;

參考上述說明配置完畢,得到如下界面,本案例中僅限制了 m3u8 類型的文件,后續(xù)我們根據(jù)實際情況進(jìn)行修改。

開啟該配置之后,再次訪問靜態(tài)資源,就會出現(xiàn) 403 Forbidden

這里需要注意,由于測試的是 m3u8 文件,所以訪問該文件的時候,如果沒有被禁止,會自動下載。

Python 端權(quán)限驗證

以下代碼基于 Flask 編寫,主要將POST請求數(shù)據(jù)和Header請求頭保存到文件中。 日志文件,我們使用 logging 模塊寫入到 new.log 文件中。

# 導(dǎo)入Flask類
from flask import Flask
from flask import request
from flask import render_template
import logging
import requests
import time
import random
import base64
logging.basicConfig(level=logging.DEBUG,
                    filename='./new.log',
                    filemode='a',
                    format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
# 實例化,可視為固定格式
app = Flask(__name__)

@app.route('/auth', methods=['GET', 'POST','HEAD'])
def auth():
    if request.method == 'GET':
        args = request.args
        return "hello"
    if request.method == 'HEAD':
        print("HEAD請求")
        arges = request.form
        print("參數(shù)")
        logging.info(arges)
        print(request)
        print("請求頭")
        headers = request.headers
        print(headers)
        logging.info(headers)
        print("請求數(shù)據(jù)")
        logging.info(request.data)
        return "login success", 200 # 403
    if request.method == "POST":
        print("POST請求")
        arges = request.form
        print(request)
        headers = request.headers
        print("參數(shù)")
        logging.info(arges)
        print("請求頭")
        logging.info(headers)
        print("請求數(shù)據(jù)")
        logging.info(request.data)
        return "login success", 200 # 403
if __name__ == '__main__':
    # app.run(host, port, debug, options)
    # 默認(rèn)值:host="127.0.0.1", port=5000, debug=False
    app.run(host="0.0.0.0", port=5000)

此時,當(dāng)你再次訪問CDN資源時,會自動回調(diào)你的服務(wù)器進(jìn)行鑒權(quán)操作,上述代碼請求成功之后,返回狀態(tài)碼為 200,接下來CDN資源可以訪問,如果返回403,表示被禁用。

驗證邏輯

服務(wù)端驗證可以基于 referer + ua + ip 進(jìn)行驗證,為了保證效率,可以使用 redis 緩存數(shù)據(jù)庫進(jìn)行配置。

到此這篇關(guān)于基于 Python實現(xiàn)云服務(wù)器的CDN域名遠(yuǎn)程鑒權(quán)配置的文章就介紹到這了,更多相關(guān)CDN 鑒權(quán)配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python如何在列表、字典中篩選數(shù)據(jù)

    python如何在列表、字典中篩選數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了python如何在列表、字典中篩選數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python批量寫入ES索引數(shù)據(jù)的示例代碼

    Python批量寫入ES索引數(shù)據(jù)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用python腳本批量寫ES數(shù)據(jù)(需要使用pip提前下載安裝es依賴庫),感興趣的小伙伴可以學(xué)習(xí)一下
    2024-02-02
  • 詳解Pandas 處理缺失值指令大全

    詳解Pandas 處理缺失值指令大全

    這篇文章主要介紹了詳解Pandas 處理缺失值指令大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Matplotlib繪圖基礎(chǔ)之文本標(biāo)注詳解

    Matplotlib繪圖基礎(chǔ)之文本標(biāo)注詳解

    Matplotlib?文本和標(biāo)注可以為數(shù)據(jù)和圖形之間提供額外的信息,幫助觀察者更好地理解數(shù)據(jù)和圖形的含義,下面就將通過示例依次介紹文本和標(biāo)注的常用使用方式
    2023-08-08
  • Python 更快進(jìn)行探索性數(shù)據(jù)分析的四個方法

    Python 更快進(jìn)行探索性數(shù)據(jù)分析的四個方法

    今天我給大家分享幾種更快的探索性數(shù)據(jù)分析方法,它們可以進(jìn)一步加速 EDA。 我們以一個學(xué)生考試成績的例子,創(chuàng)建一個如下所示的 DataFrame 并繼續(xù)操作。歡迎收藏學(xué)習(xí),喜歡點贊支持
    2021-11-11
  • Python語法詳解之decorator裝飾器

    Python語法詳解之decorator裝飾器

    裝飾器 decorator 或者稱為包裝器,是對函數(shù)的一種包裝,今天通過本文給大家分享Python語法詳解之decorator裝飾器的相關(guān)知識,感興趣的朋友一起看看吧
    2021-10-10
  • flask利用flask-wtf驗證上傳的文件的方法

    flask利用flask-wtf驗證上傳的文件的方法

    這篇文章主要介紹了flask利用flask-wtf驗證上傳的文件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 一篇文章教你學(xué)會使用Python繪制甘特圖

    一篇文章教你學(xué)會使用Python繪制甘特圖

    甘特圖又稱為橫道圖、條狀圖,它是以作業(yè)排序為目的,將活動與時間聯(lián)系起來的最早嘗試的工具之一,能夠很直觀地顯示項目、進(jìn)度等和時間的內(nèi)在關(guān)系隨著時間的進(jìn)展情況,在管理和生產(chǎn)活動中被廣泛使用
    2021-09-09
  • python初學(xué)定義函數(shù)

    python初學(xué)定義函數(shù)

    這篇文章主要為大家介紹了python的定義函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助
    2021-11-11
  • 深入理解Python虛擬機(jī)中調(diào)試器實現(xiàn)原理與源碼分析

    深入理解Python虛擬機(jī)中調(diào)試器實現(xiàn)原理與源碼分析

    本文主要給大家介紹python中調(diào)試器的實現(xiàn)原理,通過了解一個語言的調(diào)試器的實現(xiàn)原理我們可以更加深入的理解整個語言的運行機(jī)制,可以幫助我們更好的理解程序的執(zhí)行,感興趣的可以了解一下
    2023-04-04

最新評論

赣州市| 宜昌市| 乌什县| 宣威市| 赤水市| 调兵山市| 吕梁市| 温州市| 莱阳市| 锡林郭勒盟| 崇州市| 武功县| 萨嘎县| 金平| 金溪县| 丰都县| 博乐市| 呼玛县| 湖州市| 介休市| 特克斯县| 上林县| 资兴市| 如东县| 衡阳市| 寿宁县| 扬州市| 绥棱县| 嘉黎县| 化州市| 胶南市| 水城县| 阿鲁科尔沁旗| 姜堰市| 扎兰屯市| 曲周县| 三台县| 沙洋县| 舟山市| 卢龙县| 茶陵县|