阻止IP地址访问Heroku上的Flask应用程序?

时间:2014-06-14 16:57:24

标签: python heroku flask ip gunicorn

我有一个我需要阻止访问我网站的IP地址。在Heroku上运行Flask应用程序,我在服务器上每秒看到50个请求,这绝对不应该发生。

我熟悉在Apache服务器上使用htaccess,这里有类似的东西(Gunicorn服务器)吗?

2 个答案:

答案 0 :(得分:0)

尝试使用Gunicorn中的pre_request服务器挂钩:

def pre_request(worker, req):
    if req.remote_addr != 'ip to be blocked':
        pass

答案 1 :(得分:0)

使用烧瓶before_request装饰器。它将在每个请求之前被调用,因此您可以检查被禁止的IP地址列表。任何被禁止的地址都将被禁止以403终止。

from flask import request, abort, current_app as app

ip_ban_list = ['127.0.0.1']

@app.before_request
def block_method()
    ip = request.environ.get('REMOTE_ADDR')
    if ip in ip_ban_list:
        abort(403)