Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

139
Vistas
Verifique el nombre de host del servidor que invocó la API

Tengo un ELB de AWS conectado con varios EC2 que ejecutan el servidor de AWS Flask. No estoy seguro de si AWS ELB pasa la solicitud completa a EC2 o no. Sé que podemos hacer las restricciones a nivel de ELB, pero quiero poner restricciones en un solo punto final y verificar el nombre de host del servidor que invocó el punto final en Flask. ¿Es posible?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Podrías intentar lo siguiente:

 import socket from flask import request @app.route("/your_route", methods=["GET"]) def your_route(): hostname, aliaslist, ipaddrlist = socket.gethostbyaddr(request.remote_addr)

Tenga en cuenta que confiar en remote_addr no es confiable, sin embargo, como esto no está relacionado con el tema, me referiré a esta respuesta que hace uso de ProxyFix :

Para obtener más información sobre socket.gethostbyaddr() , consulte: socket.gethostbyaddr()

over 4 years ago · Santiago Trujillo Denunciar

0

Le sugiero que use el patrón decorador para tales casos, es decir, agregue una nueva opción de configuración IP_LIST con algún tipo de conjunto de direcciones dividido por comas.

 IP_LIST = "127.0.0.1,127.0.0.2,..."

Después de eso, agregue una nueva función de decorador y decore cualquier punto final con el decorador.

 def ip_verified(fn): """ A custom decorator that checks if a client IP is in the list, otherwise block access. """ @wraps(fn) def decorated_view(*args, **kwargs): ip_list_str = current_app.config['IP_LIST'] ip_list = ip_list_str.split(",") if ip_list_str else [] if request.headers.getlist("X-Forwarded-For"): remote_ip = request.headers.getlist("X-Forwarded-For")[0] else: remote_ip = request.remote_addr if remote_ip not in ip_list: return "Not sufficient privileges", 403 return fn(*args, **kwargs) return decorated_view @app.route("/your_route", methods=["GET"]) @ip_verified def your_route(): ...
over 4 years ago · Santiago Trujillo Denunciar

0

Una opción es usar un Network Load Balancer que conserve la dirección IP del cliente que realiza la solicitud. Incluso puede hacer que el NLB realice la terminación TLS como un ELB. Un NLB no altera los datos en la solicitud de red, con la excepción de la terminación de TLS si elige usarla.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda