弹性beanstalk上的configure apache/django地址invalid_host错误

问题描述 投票:0回答:1
电流设置为

拥有AWS S3(例如App.com)托管的网站

托管在Elastic Beanstalk(例如API.com)的API服务器

    Website向API Server提出API请求
  • allowered_host已在django设置,以便它包括
  • 弹性Beanstalk地址

api

的URL
    sissues:
  • Web应用程序正常工作。但是,我看到了随机URL(bot,exploits等)向API的许多请求。这要解散了数百个错误。我显然可以关闭错误通知,但这感觉不正确。
日志建议将一堆IP地址添加到允许的host中,其中大多数是我的负载平衡器的IP地址。但是,由于我的常规API请求毫无疑问,我怀疑将LOAD BALANCER的IP地址添加到washe_host是解决方案。 因此,这将使更改负载平衡器本身,因此如果它无效,则不会将请求指向Django。我在此方面找到了一些答案

如何禁用Django的无效http_host错误? Apache上的django无效的http_host标头 - 使用require?

    I在我的设置中设置以下内容。当服务器出现时,在动态构建允许的host中设置了以下内容。您只能基于弹性豆刺度环境设置实例名称。这感觉很安全,因为只有后端上只有正确的IAM权限才能访问ELB群集的私有IP地址。
  • from socket import gethostname, gethostbyname # For AWS Healthchecker HOST_NAME = gethostname() HOST_IP = gethostbyname(HOST_NAME) ALLOWED_HOSTS [ ... HOME_NAME, HOME_IP, ... ]
  • 肯定会给服务以下权限,当然将资源限制在任何名称中。
  • def get_ec2_private_ip(instance_name): command = f"""aws ec2 describe-instances --filters "Name=tag:Name,Values={instance_name}" --query "Reservations[*].Instances[*].PrivateIpAddress" --output json""" result = subprocess.run(command, shell=True, capture_output=True, text=True) return result.stdout

地,您可以尝试以下操作:

https://pypi.org/project/django-allow-cidr/

,但它允许整个范围,因此感觉不那么安全。

如果由于任何原因不安全,都会感谢任何反馈。
django amazon-web-services apache amazon-elastic-beanstalk
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.