Uma regra PAC para nomes curtos pode contornar o seu proxy
Entenda por que um nome de host sem ponto e sua forma totalmente qualificada podem selecionar rotas diferentes no mesmo script PAC.
Um script PAC recebe o nome do host da URL. dashboard não se torna automaticamente dashboard.example.internal antes da correspondência:
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY 203.0.113.10:8080";
}
Use um endpoint HTTP real no lugar do endereço de documentação; a lista de proxies HTTP fornece candidatos para testes de destino público onde essa rota é permitida. Neste script, o nome curto retorna deliberadamente DIRECT; o nome totalmente qualificado chega ao ramo do proxy. “Nome de host simples” significa uma grafia sem ponto, não a conclusão de que o host está em uma rede local confiável.
Se a política desejada for um domínio interno, corresponda a esse domínio em vez de cada nome curto. dnsDomainIs e shExpMatch têm entradas e semântica de padrão diferentes. Uma verificação de sufixo para .example.internal não inclui a raiz exata example.internal; inclua esse caso explicitamente quando for a intenção. Um padrão no estilo shell não é uma sub-rede IP nem uma expressão regular.
Compare o resultado do script para o nome curto, o nome totalmente qualificado, um host público não relacionado e qualquer raiz de domínio pretendida. Isso testa a seleção de regras sem conectar ao proxy. Inspecione a primeira regra que retorna quando um ramo DIRECT amplo impede que um endpoint de outra forma alcançável seja tentado.
Use comparação de nomes quando ela expressa a política; auxiliares DNS adicionam suas próprias consultas e atraso. Mantenha o bypass local implícito do navegador separado do script também. Uma verificação de localhost não substitui a grafia real do destino público ou interno.