验证调用 API 的服务器的主机名

San*_*rma 5 python ssl amazon-web-services flask aws-elb

我有一个与多个运行 AWS Flask 服务器的 EC2 连接的 AWS ELB。我不确定 AWS ELB 是否将完整的请求传递给 EC2。我知道我们可以在 ELB 级别进行限制,但我只想对一个端点进行限制,并验证在 Flask 中调用该端点的服务器的主机名。是否可以?

ale*_*nes 3

您可以尝试以下操作:

import socket
from flask import request


@app.route("/your_route", methods=["GET"])
def your_route():
    hostname, aliaslist, ipaddrlist = socket.gethostbyaddr(request.remote_addr)
Run Code Online (Sandbox Code Playgroud)

请注意,依赖 Remote_addr 是不可靠的,但是由于这与主题无关,我将参考这个使用ProxyFix的答案

更多信息请socket.gethostbyaddr()查看:socket.gethostbyaddr()