阻止 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_addr
与if
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】:尝试使用来自Gunicorn
的pre_request
服务器挂钩:
def pre_request(worker, req):
if req.remote_addr != 'ip to be blocked':
pass
【讨论】:
以上是关于阻止 IP 地址访问我在 Heroku 上的 Flask 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
我的请求是跨源请求吗?(heroku 上的 Django rest api,CORS 没有阻止我的请求)