A URL do protocolo no Firefox não funciona se contiver “% 2F”

1

Se eu escrever algo como o seguinte na barra de navegação do Mozilla Firefox, nada acontece:

org-protocol://capture://p/http%3A%2F%2Fsuperuser.com%2Fquestions%2Fask/protocol%20in%20firefox%20does%20not%20take%20%22%252F%22%20as%20part%20of%20a%20string%20-%20Super%20User/

Quando deixo de fora todo o %2F , o URL é processado corretamente. Chamando o emacsclient através do terminal funciona incluindo o %2F .

Em algumas versões anteriores do Firefox, este protocolo funcionou bem para todos os casos. Por que o Firefox agora reconhece o %2F nesse caso?

    
por testphys 20.07.2012 / 17:10

1 resposta

0

Eu acredito que este é um recurso de segurança. %2F , como você deve saber, é a codificação de URL para o caractere / da barra invertida. Permitindo que %2F esteja essencialmente permitindo a travessia de diretórios que fica "sob o radar", isto é, impede que o usuário veja claramente que eles estão atravessando diretórios. Combine isso com a permissão do caractere . e você pode fazer algo desagradável, especialmente se estiver falando sobre o sistema de arquivos local em que a passagem de diretórios não é cuidadosamente restrita, pois é um servidor HTTP.

Você se lembra das versões específicas do Firefox em que isso funcionava e das versões em que ele parou de funcionar? Houve vários patches de segurança relacionados a validação de entrada no Firefox ao longo dos anos para várias explorações de travessia de diretório. Seu URI pode estar tropeçando no código de segurança. Existem até algumas reclamações em alguns dos links abaixo que, dependendo da versão específica, as correções tentadas pioraram o problema ou causaram alguns falsos positivos; ou seja, o código bloquearia URIs legítimos.

  1. link
  2. link
  3. link
  4. link
por 20.07.2012 / 17:44