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

Posted

技术标签:

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

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

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

【问题讨论】:

如何将remote_addrif cond 一起使用? 【参考方案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)

【讨论】:

我写了一个python烧瓶包来禁止使用这种技术的IP地址。 github.com/Martlark/flask-ipban【参考方案2】:

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

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

【讨论】:

以上是关于阻止 IP 地址访问我在 Heroku 上的 Flask 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

我的请求是跨源请求吗?(heroku 上的 Django rest api,CORS 没有阻止我的请求)

弹性IP AWS EC2阻止Web抓取

如何获取Heroku应用程序的IP地址

由于 Heroku 上的 MIME 类型不匹配,脚本被阻止

iptables 阻止对端口 8000 的访问,但 IP 地址除外

如何授予对 nGinx 中 GeoIP [国家] 阻止的特定 IP 地址的访问权限?