<p>gluon-status-page-api: melhorar a política de origem cruzada</p>

Criado em 20 jul. 2017  ·  3Comentários  ·  Fonte: freifunk-gluon/gluon

Access-Control-Allow-Origin: * talvez seja uma má ideia para a status-page-api, já que outros sites podem derivar a geolocalização do cliente wi-fi da página de status acessando a api via ajax.

Para referência: problema semelhante no wi-fi do DB

bug feature-accepted

Comentários muito úteis

Embora isso precise de algum tempo de transição, devemos simplesmente alterar a página de status para realmente vincular às páginas de status de outros nós, em vez de apenas alterar a URL de back-end quando outro nó for selecionado, evitando assim todo o problema.

Ainda poderíamos fornecer um único endpoint Access-Control-Allow-Origin: * apenas retornando uma página vazia que pode ser usada para verificar a acessibilidade (e selecionar o endereço de um nó vizinho com base nisso, como já é feito para a URL de backend no momento).

Todos 3 comentários

Muito verdadeiro. Vejo duas soluções possíveis sem quebrar totalmente a página de status:

  1. Não enviamos o cabeçalho quando a API é chamada por meio de um endereço "genérico" (next_node). Isso torna impossível coletar informações sem saber com antecedência o endereço do nó ao qual o usuário está conectado. No entanto, muito mais lógica deve ser implementada no lado do servidor (atualmente simplesmente ignoramos o cabeçalho Host AFAIK).
  2. Enviamos apenas Access-Control-Allow-Origin: $site.next_node.name$ . Isso só exibirá os dados do vizinho se a página de status for originalmente chamada por meio do endereço next_node (mesmo se você navegar para longe de seu próximo nó).

Eu gosto (2). Parece uma pequena mudança e resolverá o problema. <<< - Mudei de ideia. Gosto de vincular ainda mais.

Embora isso precise de algum tempo de transição, devemos simplesmente alterar a página de status para realmente vincular às páginas de status de outros nós, em vez de apenas alterar a URL de back-end quando outro nó for selecionado, evitando assim todo o problema.

Ainda poderíamos fornecer um único endpoint Access-Control-Allow-Origin: * apenas retornando uma página vazia que pode ser usada para verificar a acessibilidade (e selecionar o endereço de um nó vizinho com base nisso, como já é feito para a URL de backend no momento).

Esta página foi útil?
0 / 5 - 0 avaliações