Problemas com nomes
l Certos recursos podem ter vários nomes
l Nestes casos, devemos ter “formas usuais” (ou “canônicas”) perfeitamente definidas para efetuar comparações e efetuar decisões de segurança
l Exemplo: “c:\temp”, “C:\TEMP”, “\TEMP”, “file://c:\temp”
l Exemplos:
Ø Arquivos
Ø Pastas
Ø Usuários
l Cuidado com acentuação

| Problemas com nomes.
| Certos recursos usados nos programas podem ter vários nomes, mesmo que o recurso seja um só.
| Nestes casos devemos ter “formas usuais” (ou “canônicas”) perfeitamente definidas.
| O problema é que devemos efetuar comparações sempre com a forma canônica e não com uma simples string antes de efetuar decisões de segurança como por exemplo liberar ou não o acesso a um recurso.
| Suponha o seguinte problema: o diretório “c:\temp” minúsculo é o mesmo que o “C:\TEMP” maiúsculo? Se você estiver programando para Windows, a resposta é sim, mas as strings não são idênticas.
| E o diretório “TEMP” é o mesmo? Neste diretório relativo teríamos que acrescentar o drive e diretório corrente antes de efetuar a comparação.
| E o diretório “file://C:\TEMP”? Ele ‘eo mesmo, não é?
| Observe que o problema é que temos vários nomes para o mesmo recurso. Nestes casos devemos sempre comparar a forma canônica e nunca a string em si.
| Este problema ocorre com praticamente qualquer recurso que tenha um nome como arquivos, pastas e usuários.
| Observe que podemos ter também questões ligadas a uso de caracteres acentuados.