flask allowed hosts
1.0.0
يوفر هذا الملحق طريقة لتقييد الوصول إلى تطبيق Flask الخاص بك استنادًا إلى اسم مضيف الطلب الوارد أو عنوان IP أو نطاق عنوان IP (الشبكة).
قم بتثبيت الحزمة باستخدام PIP:
pip install flask-allowed-hostsAllowedHosts .@allowed_hosts.limit() ديكور (اختياري). from flask import Flask , jsonify , abort
from flask_allowed_hosts import AllowedHosts
app = Flask ( __name__ )
ALLOWED_HOSTS = [ "93.184.215.14" , "api.example.com" ]
def custom_on_denied ():
error = { "error" : "Oops! Looks like you are not allowed to access this page!" }
return jsonify ( error ), 403
allowed_hosts = AllowedHosts ( app , allowed_hosts = ALLOWED_HOSTS , on_denied = custom_on_denied )
# Allows all incoming requests
@ app . route ( "/api/public" , methods = [ "GET" ])
def public_endpoint ():
data = { "message" : "This is public!" }
return jsonify ( data ), 200
# Only allows incoming requests from "93.184.215.14" and "api.example.com"
@ app . route ( "/api/private" , methods = [ "GET" ])
@ allowed_hosts . limit ()
def private_endpoint ():
data = { "message" : "This is private!" }
return jsonify ( data ), 200
# We can override the allowed_hosts list and the on_denied function for each route
@ app . route ( "/api/private/secret" , methods = [ "GET" ])
@ allowed_hosts . limit ( allowed_hosts = [ "127.0.0.1" ], on_denied = lambda : abort ( 404 ))
def secret_private_endpoint ():
data = { "message" : "This is very private!" }
return jsonify ( data ), 200
if __name__ == '__main__' :
app . run ( host = '0.0.0.0' , port = 5000 , debug = True )تحذير : قد يسبب هذا النهج سلوكًا غير متوقع عند الجمع بين الاستخدام القائم على الفصل.
@limit_hosts . from flask import Flask , jsonify
from flask_allowed_hosts import limit_hosts
app = Flask ( __name__ )
ALLOWED_HOSTS = [ "93.184.215.14" , "api.example.com" ]
def custom_on_denied ():
error = { "error" : "Custom Denied Response" }
return jsonify ( error ), 403
# Allows all incoming requests
@ app . route ( "/api/public" , methods = [ "GET" ])
def public_endpoint ():
data = { "message" : "This is public!" }
return jsonify ( data ), 200
# Only allows incoming requests from "93.184.215.14" and "api.example.com"
@ app . route ( "/api/private" , methods = [ "GET" ])
@ limit_hosts ( allowed_hosts = ALLOWED_HOSTS , on_denied = custom_on_denied )
def private_endpoint ():
return jsonify ({ "message" : "This is private!" }), 200يمكنك العثور على المزيد من الأمثلة في دليل الأمثلة.
app : مثيل تطبيق Flask (اختياري).allowed_hosts : قائمة المضيفين المسموح بهم (اختياري ، None التي لا تسمح لجميع المضيفين).on_denied : دالة لسلوك الوصول المنعطف (اختياري).الامتداد يحترم هذه التكوينات:
ALLOWED_HOSTS : قائمة المضيفين المسموح بهم في قارورة التكوين.ALLOWED_HOSTS_ON_DENIED : دالة لمرفض الوصول إلى سلوك القارورة.الأسبقية : القيم المقدمة أثناء تهيئة قيم تهيئة قارورة تهيئة.
يمكنك تمكين وضع التصحيح عن طريق تعيين متغير بيئة ALLOWED_HOSTS_DEBUG إلى True :
export ALLOWED_HOSTS_DEBUG= " True "سيؤدي ذلك إلى طباعة رسائل التصحيح المفيدة إلى وحدة التحكم.
المساهمات مرحب بها! لا تتردد في تقديم طلب سحب.
إذا كان لديك أي أسئلة أو تعليقات ، فلا تتردد في فتح مشكلة أو طلب سحب.
تم ترخيص هذا المشروع بموجب ترخيص [MIT] - راجع ملف الترخيص.