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

基于 Python實現云服務器的CDN域名遠程鑒權配置

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

實戰(zhàn)場景

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

實現目標:

  • 請求CDN資源調用我們的鑒權服務器
  • 鑒權服務器獲取請求信息,并保存到日志中
  • 分別返回鑒權成功,鑒權失敗

開啟遠程鑒權

在遠程鑒權頁面打開【開關】之后,出現如下配置界面,這里相關細節(jié)描述如下:

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

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

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

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

Python 端權限驗證

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

# 導入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("參數")
        logging.info(arges)
        print(request)
        print("請求頭")
        headers = request.headers
        print(headers)
        logging.info(headers)
        print("請求數據")
        logging.info(request.data)
        return "login success", 200 # 403
    if request.method == "POST":
        print("POST請求")
        arges = request.form
        print(request)
        headers = request.headers
        print("參數")
        logging.info(arges)
        print("請求頭")
        logging.info(headers)
        print("請求數據")
        logging.info(request.data)
        return "login success", 200 # 403
if __name__ == '__main__':
    # app.run(host, port, debug, options)
    # 默認值:host="127.0.0.1", port=5000, debug=False
    app.run(host="0.0.0.0", port=5000)

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

驗證邏輯

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

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

相關文章

  • python如何在列表、字典中篩選數據

    python如何在列表、字典中篩選數據

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

    Python批量寫入ES索引數據的示例代碼

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

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

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

    Matplotlib繪圖基礎之文本標注詳解

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

    Python 更快進行探索性數據分析的四個方法

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

    Python語法詳解之decorator裝飾器

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

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

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

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

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

    python初學定義函數

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

    深入理解Python虛擬機中調試器實現原理與源碼分析

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

最新評論

贞丰县| 邯郸县| 滦平县| 金寨县| 盐池县| 陕西省| 赣州市| 鄂伦春自治旗| 新乡市| 兴仁县| 铁力市| 清苑县| 洛隆县| 商河县| 广饶县| 峨眉山市| 上饶市| 大城县| 德兴市| 文山县| 黑龙江省| 邻水| 休宁县| 宾川县| 阜宁县| 马龙县| 厦门市| 福安市| 通州区| 德庆县| 奈曼旗| 桂东县| 深水埗区| 南部县| 阳原县| 峨眉山市| 嘉善县| 宁强县| 广西| 札达县| 库尔勒市|