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

287
Vistas
¿Cómo se restringen las solicitudes para que solo funcionen si un dominio específico accede a ellas?

Tengo esta API web ASP.NET y quiero restringir el acceso para que solo funcione cuando lo llame un host específico. No puedo, por lo que sé hasta ahora, asegurarlo por token, porque la URL de la API WEB será una URL de devolución de datos para un sistema que lo llamará automáticamente cuando se realice una determinada acción. Revisé CORS, pero lo que parece hacer CORS es permitir que un dominio específico acceda a la API. Entonces, ¿significa esto que mi WEB API ya está restringida para otros dominios? Entonces, ¿por qué Postman puede acceder a él localmente, incluso si está alojado en Azure?

Solo quiero que mi servicio permita llamadas desde localhost y otro dominio específico solamente.

¿Cómo logro esto?

¡Gracias!

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

0

CORS por sí solo le dice a las aplicaciones del navegador/cliente que dejen de enviar solicitudes; en muchas implementaciones de API web de ASP.Net, en realidad no bloquea la canalización de solicitudes. Es por eso que Postman funciona, Postman no ejecuta primero la misma verificación de OPTIONS previa al vuelo , solo envía la solicitud.

Debe considerar agregar autenticación a su API, la autenticación basada en token de portador funciona lo suficientemente bien con y entre las API. Lea sobre Proteger una API web con cuentas individuales e inicio de sesión local en ASP.NET Web API 2.2 , pero eso está fuera del alcance de esta pregunta.

A nivel conceptual, solo necesita interceptar la solicitud entrante en la canalización de OWIN antes que el middleware de la API y solicitar la solicitud si no coincide con sus reglas. Esto debería usarse junto con CORS para que los navegadores respondan de manera estándar.

Como antecedentes, lea Bloquear o limitar el tráfico no deseado a la aplicación web Asp.Net . Por lo general, administramos el filtrado de seguridad a nivel de dominio o IP en la arquitectura de alojamiento o enrutamiento. Los hosts de IIS o Azure tienen muchas políticas integradas para ayudar a administrar esto.

Podría implementar esto a nivel global agregando el siguiente procesador de solicitudes OWIN:

 public void ConfigureOAuth(IAppBuilder app) { app.Use((context, next) => { string[] AllowedDomains = new string[] { "::1", "localhost", "mybusinessdomain.com" }; if (!AllowedDomains.Contains(context.Request.Host.Value.ToLower())) { context.Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; return System.Threading.Tasks.Task.FromResult<object>(null); } return next(); }); // TODO: add in your other OWIN configuration AFTER the request filter. }

Si NO está utilizando la canalización de alojamiento OWIN y desea administrar esto globalmente, puede marcar global.asax.cs para manejar Application_BeginRequest :

 private static readonly string[] AllowedDomains = new string[] { "::1", "localhost", "mybusinessdomain.com" }; protected void Application_BeginRequest(Object sender, EventArgs e) { if >(!AllowedDomains.Contains(HttpContext.Current.Request.UserHostName.ToLower())) { HttpContext.Current.Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; HttpContext.Current.Response.End(); // or transfer to a specific page // Server.Transfer("~/banned.aspx"); } }
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