【问题标题】:Block an IP address from accessing my Flask app on Heroku?阻止 IP 地址访问我在 Heroku 上的 Flask 应用程序?
【发布时间】:2014-08-05 00:15:30
【问题描述】:

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

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

【问题讨论】:

  • 如何将remote_addrif cond 一起使用?

标签: python heroku flask ip gunicorn


【解决方案1】:

使用烧瓶 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)

【讨论】:

【解决方案2】:

尝试使用来自Gunicornpre_request 服务器挂钩:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-06
    • 2012-08-21
    • 2011-03-16
    • 1970-01-01
    • 2015-11-03
    • 2015-05-03
    • 2010-11-04
    • 2012-08-24
    相关资源
    最近更新 更多