Header Ads Widget

Ticker

6/recent/ticker-posts

10 proxies CORS gratuitos





Al desarrollar aplicaciones, un error de CORS puede ser un error molesto y que rompe el flujo de trabajo. Si bien la prohibición de CORS está diseñada principalmente para proteger al usuario final, a menudo puede complicar demasiado el flujo de datos y causar problemas de desarrollo. Una solución simple para esto es usar un proxy CORS.

Hoy, veremos algunos proxies CORS, así como también discutiremos brevemente cuál es el problema de CORS fundamentalmente, así como también discutiremos algunos casos de uso cotidianos detrás de los proxies.

¿Qué es CORS?

CORS, o Intercambio de recursos de origen cruzado, es una de las dos dinámicas de recursos que son comunes en las comunicaciones de la API del navegador (la otra es "Mismo origen"). En esencia, las políticas del mismo origen evitan las solicitudes de origen cruzado: las solicitudes que no provienen del mismo origen que los datos alojados serán rechazadas, protegiendo la fuente de origen de una variedad de ataques complejos que incluyen scripts de dominio cruzado, redireccionamientos y más. .

Si bien esto está diseñado para proteger al usuario final, también puede ser un importante bloqueador del desarrollo. Por esta razón, los desarrolladores suelen emplear un proxy . En pocas palabras, un proxy toma una solicitud y la envía a través de una URL predeterminada; en la mayoría de los casos, pasa esta URL con una variable de encabezado CORS que elimina la obstrucción del servicio interno.

Hay algunas implicaciones de seguridad aquí (que discutiremos en un momento), pero en última instancia, este proxy sirve como una capa transformadora de intermediario, lo que permite que los problemas de CORS se omitan por completo.

Lea más aquí: ¿Qué es CORS?

Casos de uso de proxy

Básicamente, existen dos casos de uso para los proxies CORS.

  • Proxies internos : en algunos casos, los problemas de CORS provienen de solicitudes internamente coherentes, pero separadas de dominio. En estos casos, la URL y los URI pueden existir en servidores confiables, pero debido a que están en dominios separados, CORS crea problemas importantes en sus comunicaciones. La mejor solución para este tipo de caso de uso suelen ser las instalaciones e implementaciones locales.
  • Proxies externos : en casos externos, es posible que una API necesite comunicarse de forma intermitente con recursos externos. Si el caso es que esto ocurre con poca frecuencia como para no justificar la administración de CORS o que CORS simplemente no es compatible con el enfoque API actual, hay momentos en los que se necesita el soporte de CORS sin los procesos fundamentales en el servidor que lo permitan. Los proxies externos, generalmente manejados por servidores de terceros, son una gran solución aquí.

Preocupaciones sobre la seguridad del proxy CORS

Los proxies CORS son extremadamente útiles, pero dependiendo de su implementación, pueden tener un agujero de seguridad bastante evidente. Los apoderados hacen una cosa: aceptan una solicitud y sirven como intermediarios para enviar esa solicitud a otro lugar. Lo que esencialmente hace un proxy es llevar a cabo un ataque benévolo de "hombre en el medio".

Dichos proxies depositan mucha confianza en el desarrollador del proxy, así como en su implementación de seguridad. Algunas de las opciones de esta lista registran IP y solicitudes, y otras tienen operaciones internas relativamente opacas; cuando las utilizamos, la pregunta es: "¿Le confío mi solicitud a este desarrollador?". Esto es especialmente importante si pasa algún tipo de autorización en línea (que suele ser una mala práctica de desarrollo, pero no es imposible de ver en un entorno interno).

Hay opciones para evitar esto. Los proxies locales pueden ayudar, especialmente si la implementación pasa encabezados en lugar de enviar el contenido a un CDN o proxy externo. En ese punto, sin embargo, también podría preguntarse por qué no está simplemente habilitando el manejo de CORS en el servidor propiamente dicho. En algunos casos, este es un argumento sólido; en otros casos, el peso de habilitar CORS y manejar esos encabezados podría no estar justificado. Aquí debe hacerse un juicio de valor; independientemente, debe tener en cuenta que el uso de cualquier proxy conlleva un riesgo fundamental .

Servidores proxy CORS gratuitos

1. CORS en cualquier lugar

CORS Anywhere hace lo que dice en la lata: permite solicitudes de origen cruzado a "cualquier lugar". Lo mejor que tiene CORS Anywhere a su favor es su simplicidad: en esencia, todo lo que tiene que hacer es prefijar la URL con la URL de la API para CORS Anywhere, y el proxy manejará la solicitud en su nombre con los encabezados CORS apropiados. También puede usar algo como npm para instalar cors-anywhere como un módulo y utilizar su dominio y puerto definidos para hacer esencialmente lo mismo a nivel local.

2. HTMLDriven

HTMLDriven es una solución diseñada para "realizar solicitudes AJAX estándar a servicios de terceros". Como tal, es una herramienta sencilla y tiene conjuntos de funciones limitados fuera del proxy para solicitudes. Si bien se puede instalar usando un compositor, también hay una implementación basada en web relativamente liviana y extremadamente simple en su página principal que se puede usar para solicitudes simples.

3. Grupo de tareas

Taskcluster es una colección de servicios, uno de los cuales es CORS Proxy. El proxy es un servicio relativamente simple que permite a los servicios de taskcluser realizar solicitudes CORS a través de un sistema que permite URL, métodos, encabezados, datos y encabezados de rechazo (específicamente, acceptUnauthorized). Si bien todavía es utilizable, como muchos en esta lista, este proyecto actualmente no se está iterando; de hecho, el GitHub donde se lleva a cabo el desarrollo está actualmente archivado. Como tal, si bien esta es una gran solución, debe considerarse una solución provisional en lugar de una solución a largo plazo.

4. thingproxy

thingproxy es un proxy de JavaScript que resuelve el problema de CORS, pero también tiene una gran función cuando se trata de solicitudes HTTPS. Muchos navegadores, además de los problemas de CORS, tienen problemas al manejar solicitudes de recursos que no son HTTPS de solicitantes HTTPS. thingproxy está diseñado para solucionar esto y ofrece tanto la opción de código fuente como un proxy gratuito en freeboard.io.

thingproxy es bastante explícito para pequeñas llamadas de API; como tal, las solicitudes y respuestas están limitadas a 100.000 caracteres cada una. Además, cada IP se limita a solo diez solicitudes por segundo. Esto hace que este proxy sea una gran plataforma de prueba en lugar de un proxy a largo plazo para uso en producción.

5. Cualquiera que sea el origen

Originalmente un clon de código abierto de AnyOrigin , Whatever Origin se ha convertido desde entonces en el mejor de los dos debido al simple hecho de que AnyOrigin ya no está operativo. Cualquiera que sea el origen es bastante simple y utiliza el mismo esquema de "URL de proxy" + "URL de destino" que en otras implementaciones. En particular, Whatever Origin afirma tener un mejor soporte HTTPS y, como tal, puede ser una mejor solución para aquellos que utilizan HTTPS en sus proyectos que necesitan proxy.

Cabe señalar que Whatever Origin, aunque todavía se puede utilizar, no se mantiene actualmente. Por esta razón, el proyecto, si bien es útil, debe considerarse dentro del marco de no ser actual.

6. alloworigin

alloworigin es un proyecto interesante. Inicialmente una simple alternativa de Django a AnyOrigin y Whatever Origin, es la única implementación entre esos dos que se puede usar actualmente y está en mantenimiento activo. El último compromiso de alloworigin fue en 2019, y el desarrollo parece algo activo. Es básicamente lo mismo que Whatever Origin en términos de flujo de trabajo de uso, por lo que si se necesita un proyecto actual como alternativa a Whatever Origin, esta es una gran opción, asumiendo que el uso de Django es compatible con tu implementación existente.

7. Ir entre

Go Between ofrece dos soluciones diferentes para el manejo de proxy CORS. Primero, proporciona una solución bastante estándar para simplemente anteponer una URL con la URL del proxy (específicamente, agregar " http : // gobetween Oklabs Org /" antes de cada solicitud). La solución secundaria más interesante es el uso del mapeo de dominios, que permite mapear cualquier dominio a cualquier URI como baño base. Esto se utiliza mejor para los recursos de producción que afectan de forma rutinaria a los problemas de CORS sin que por sí mismos necesiten encabezados de CORS en ningún nivel alto. Ese término medio a menudo está desatendido, y Go Between es una solución maravillosa para ese caso de uso específico.

8. todos los orígenes

allOrigins es una solución de JavaScript interesante en el sentido de que el contenido se extrae a través de la API en JSON / P o sin formato, y luego se entrega al cliente para su posterior uso o transformación. Este es más directamente un proxy útil en el desarrollo de servicios que dependen de otros recursos y páginas en lugar de API específicas; por ejemplo, extraer datos de Wikipedia.org sin utilizar una API es un buen caso de uso para este tipo de proxy.

Dicho esto, esta es una solución muy especializada y solo es realmente útil en aplicaciones específicas. Una solución más generalista puede ser más apropiada según el caso de uso; sin embargo, si su caso de uso es apropiado, allOrigins es una gran implementación.

9. Cloudflare

Cloudflare es posiblemente la solución con más funciones de esta lista. Su solución de proxy CORS es un aspecto de una oferta mucho más sofisticada. Cloudflare es una red de distribución de contenido masiva o CDN. Como tal, ofrece soluciones de seguridad, confiabilidad y rendimiento mucho más allá de lo que está diseñado para hacer un proxy CORS.

Teniendo eso en cuenta, Cloudflare proporciona un método bastante limpio y sencillo para la resolución CORS. Cloudflare detecta automáticamente los activos almacenados en caché a través de la investigación de encabezados y pasa los encabezados de origen desde el servidor de origen al navegador en cuestión. Todo esto se hace de manera bastante simple y se puede configurar y editar utilizando la API interna.

10. YaCDN

YaCDN no es realmente un servidor proxy por diseño, sino que existe como un CDN (muy parecido a CloudFlare). Dicho esto, tiene un extremo de proxy CORS explícito que simplemente antepone la URL de YaCDN al destino del recurso. Es de destacar que YaCDN todavía se mantiene y actualiza activamente.

Conclusión

Una de las mejores cosas del desarrollo abierto es que si necesita algo, es muy probable que haya una solución integral en alguna parte. Todas las opciones en esta lista son excelentes dependiendo de algunos casos de uso específicos, requisitos y restricciones de implementación; como tal, cualquier opción aquí puede ser la adecuada para la situación correcta.

¿Qué opinas de esta lista? ¿Perdimos algún proxy CORS importante? ¡Háganos saber en los comentarios a continuación!

Publicar un comentario

0 Comentarios