valider_url_distante => pouvoir déclarer des domaines distants et pas seulement des hosts distants
Bonjour,
La fonction valider_url_distante permet de déclarer des hosts distants :
$known_hosts = pipeline('declarer_hosts_distants', $known_hosts);
C'est très bien, mais avec plusieurs centaines de hosts à déclarer (dont la liste varie dans le temps), cela devient compliqué à gérer.
Serait-il possible d'avoir, en plus, la possibilité de déclarer des domaines distants ?
Une première piste serait de pouvoir déclarer .example.com dans le pipeline pour inclure tous les *.example.com au lieu des les énumérer un par un.
Une seconde piste consisterait à s'inspirer de la function need_proxy (via une constante avec la même syntaxe que pour le http_noproxy) :
// Pour mémoire code actuel à conserver ...
$is_known_host = false;
foreach ($known_hosts as $known_host) {
$parse_known = parse_url($known_host);
if ($parse_known
and strtolower($parse_known['host']) === strtolower($parsed_url['host'])) {
$is_known_host = true;
break;
}
}
// ... que l'on pourrait faire suivre de ce code (complètement inspiré de function need_proxy) :
if (!$is_known_host) {
$known_domaines = _DECLARER_DOMAINES_DISTANTS;
$known_domaines = str_replace("\n", " ", $known_domaines);
$known_domaines = str_replace("\r", " ", $known_domaines);
$known_domaines = " $known_domaines ";
$domain = strtolower($parsed_url['host']);
if (strpos($known_domaines, " $domain ") !== false){
$is_known_host = true;
}
while (strpos($domain, '.') !== false) {
$domain = explode('.', $domain);
array_shift($domain);
$domain = implode('.', $domain);
if (strpos($known_domaines, " .$domain ") !== false) {
$is_known_host = true;
}
}
}
Cordialement Equipement