플라스크 및 flask_limiter를 사용하여 API 끝점을 만드는 중입니다. 문제가 발생합니다. 내 목표는 클라이언트 IP 주소뿐만 아니라 단일 끝점에서 클라이언트가 제공하는 API 키 (플라스크의 "요청"모듈을 통해 액세스 할 수 있음)의 속도를 제한하는 것입니다.Flask Limiter - 단일 끝점에 둘 이상의 key_func 사용
IP 주소 제한 기는 중요한 이유입니다. API 키 리미터는 비즈니스상의 이유로 사용되는 반면 무차별 공격으로부터 보호하고 싶습니다. 속도 리미터를 모두 구축 했으므로 독립적으로 작동합니다 (즉, IP 주소 또는 제공된 API 키를 제한 할 수 있음). 그러나 동시에 두 종점을 모두 실행할 수 없었습니다. 지금까지 밖으로 시도했는지의 예 :
from flask import Flask, request
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
ip_limiter = Limiter(app, key_func=get_remote_address)
get_api_key = lambda : request.args.get('apikey')
api_key_limiter = Limiter(app, key_func=get_api_key)
@app.route('/theEndpoint')
@ip_limiter.limit('some_limit_here')
@api_key_limiter.limit('other_limit_here')
def theEndpointFunction(...):
.......
하나의 패키지에있는 모든 속도 제한 (즉 flask_limiter)를 구현하는 것이 아니라 지금까지 유일한 방법은 내가 속도 제한을 구현하기 위해 생각할 수있는 좋을 것이다
여러 개의 키를 사용하면 redis와 같은 것으로 전환 할 수 있습니다.
flask_limiter를 사용하여 멀티 키 속도 제한을 구현하는 방법에 대한 단서가 있습니까?