IE, nomes de host com sublinhados e cookies

Nós o ridicularizamos por todas as coisas que ele não faz bem, mas, neste caso, encontrei um problema em que o Internet Explorer estava fazendo a coisa certa, mas ainda não foi muito útil.

O IE pode ser o único navegador que verifica a validade de um nome de host antes de permitir que os cookies sejam salvos no navegador. A especificação IETF tem uma lista de caracteres que agora são permitidos em nomes de host ( http://www.ietf.org/rfc/rfc2396.txt ) com o sublinhado ‘ ‘ sendo um deles. Se o seu nome de host tiver um sublinhado no nome (por exemplo, fort apache), o IE não gravará cookies localmente em sua máquina, mas também não fornecerá nenhuma indicação de que o nome de host não é válido.

Aprendi isso recebendo um tíquete informando que todas as operações não GET para um aplicativo da web estavam erradas e, olhando os logs do Rails, pude ver que a solicitação estava falhando na verificação de autenticação CSRF ( http: //guides.rubyonrails. org / security.html ). A verificação de autenticação contém duas chaves que são comparadas entre si. Uma chave é incorporada em uma tag JavaScript dentro da página e a segunda chave é gravada em um cookie de sessão. Quando uma nova solicitação não GET é feita ao servidor, os dois valores são comparados e se eles corresponderem, a solicitação é autorizada, mas, neste caso, como o cookie de sessão nunca foi gravado, a solicitação nunca seria autorizada.