您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何限制单个IP地址访问Flask?

如何限制单个IP地址访问Flask?

使用Flask的功能,您可以使用before_request()钩子测试request.remote_addr属性

from flask import abort, request

@app.before_request
def limit_remote_addr():
    if request.remote_addr != '10.20.30.40':
        abort(403)  # Forbidden

但是在服务器上使用防火墙规则可能是更安全,更可靠的选择。

请注意,如果浏览器和服务器之间存在反向代理,则可以屏蔽Remote_Addr。小心如何限制这一点,不要将自己锁在门外。如果代理位于服务器本身附近(例如负载平衡器或前端缓存),则可以检查request.access_route列表以访问实际IP地址。仅当remote_addr自身也是一个受信任的IP地址时,也可以这样做

trusted_proxies = ('42.42.42.42', '82.42.82.42', '127.0.0.1')

def limit_remote_addr():
    remote = request.remote_addr
    route = list(request.access_route)
    while remote in trusted_proxies:
        remote = route.pop()

    if remote != '10.20.30.40':
        abort(403)  # Forbidden
Python 2022/1/1 18:37:52 有251人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶