Dans PAC, shExpMatch utilise des jokers de style shell. Pour les sous-domaines de example.com :

if (shExpMatch(host, "*.example.com")) {
    return "PROXY proxy.example:8080";
}

Utilisez dans ces valeurs de retour les points de terminaison HTTP choisis par la politique ; la liste de proxys HTTP fournit des candidats pour les routes publiques autorisées. L'astérisque correspond à une séquence de caractères. Ce n'est pas un opérateur de répétition d'expression régulière, donc un .*example.com qui ressemble à une regex change le sens.

Incluez explicitement le nom exact du parent lorsqu'il fait partie de la politique :

if (host === "example.com" || shExpMatch(host, "*.example.com")) {
    return "PROXY proxy.example:8080";
}

Utiliser *example.com à la place accepterait aussi des noms se terminant par ces lettres sans point séparateur. Cela élargit l'ensemble au-delà de la limite de domaine prévue.

La base portable des jokers PAC comprend * et ? ; les classes de caractères varient selon l'implémentation. Une regex JavaScript utilise plutôt test() et ses propres règles d'ancrage et d'échappement.

Faites correspondre l'entrée prévue. host est un nom d'hôte, tandis que url inclut un schéma et a peut-être été assainie. Une règle de domaine ne devrait pas dépendre accidentellement d'un chemin que le navigateur ne fournit jamais.

Articles similaires