GOOGLE ADS

lunes, 25 de abril de 2022

Error HTTP 418 (Error de tetera) en el enlace a FlightRadar24 cuando el servidor está en Localhost

Estoy escribiendo una aplicación web de Rails que presenta los datos del aeropuerto de OurAirports al usuario. Una comodidad que ofrezco es un enlace al sitio web de FlightRadar24 para ese aeropuerto.

Construyo una URL para ese aeropuerto, por ejemplo, " https://www.flightradar24.com/airport/JFK " y luego le presento un hipervínculo normal:

<td align="center">
<%= link_to 'FR 24', airport.flight_radar_24_link, target: '_blank' %>
</td>

Esto funciona bien cuando hago clic en el enlace del servidor de producción en Heroku, pero cuando ejecuto el servidor web localmente, aparece un error HTTP:

This page isn't working
If the problem continues, contact the site owner.
HTTP ERROR 418`

Creo que esto tiene algo que ver con CSRF pero no puedo encontrar nada definitivo.

El código fuente está en https://github.com/keithrbennett/our_airports en caso de que ayude.

Alguien me puede decir que es lo que pasa y como puedo solucionarlo?


Solución del problema

No estoy seguro de por qué FlightRadar24 responde 418en este caso, pero hace que sea difícil ejecutar su aplicación localmente.

Esto se debe al encabezado de referencia HTTP. Cuando ese encabezado está configurado para localhostobtener una tetera; si no, obtienes 200.

% curl -I --referer "http://localhost:3000" "https://www.flightradar24.com/airport/JFK"
HTTP/2 418
date: Mon, 03 Sep 2018 23:02:16 GMT
server: cloudflare

Pero con example.com como referente:

% curl -I --referer "http://www.example.com" "https://www.flightradar24.com/airport/JFK"
HTTP/2 200
date: Mon, 03 Sep 2018 23:02:29 GMT
content-type: text/html; charset=utf-8
last-modified: Mon, 03 Sep 2018 23:02:29 GMT
x-airport: BQH
server: cloudflare

(algunos encabezados eliminados para facilitar la lectura)

¿Cómo solucionarlo?

  • Ejecute un servidor de desarrollo local que use nombres de host bonitos como our-airports.test. Uso puma-dev para esto, y también es útil cuando ejecuto varias aplicaciones de rieles localmente.

  • Editar /etc/hostspara un bonito nombre de host comoour-airports.test

  • Editar:

    Una solución mucho mejor que se encuentra en esta respuesta, que es tan simple como agregar esta metaetiqueta a su HTML:

     <meta name="referrer" content="no-referrer" />

    No hay comentarios.:

    Publicar un comentario

    Flutter: error de rango al acceder a la respuesta JSON

    Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...