Pergunta

Existe alguma restrição formal sobre qual caracteres são permitidos em nomes de parâmetro de URL?

Estive lendo RFC3986 ( "Uniform Resource Identifier (URI): Generic Syntax" ), mas não chegaram a uma conclusão definitiva.

Eu sei que existem limitações práticas, mas seria realmente ser proibido de fazer algo como:

param with\funny<chars>=some_value

enquanto eu escapar-lo corretamente:

param%20with%1cfunny%3cchars%3e=some_value
Foi útil?

Solução

Não há restrições sobre os nomes dos parâmetros escaparam nas especificações URI. Pode haver restrições no software do lado do servidor que você usa, no entanto. Isto é especialmente verdadeiro se você usar scripts “caseiros” para interpretar URIs.

Outras dicas

Você também deve ler RFC2396 . Parece ser mais informativa do que RFC3986.

Não são caracteres para URLs reservados, mas contanto que você escapar (urlencode), então você deve ser fino.

Dependendo do quadro usado, você pode obter exceções se você tentar enviar valores suspeitos. ASP.NET tem filtragem de conteúdo que irá lançar exceções se você tentar enviar dados "inseguros", como scripts ou HTML. Isso é uma característica do quadro que, em vez de uma limitação ou regra imposta pela sintaxe URL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top