Changeset 113961 in spip-zone


Ignore:
Timestamp:
Feb 18, 2019, 10:23:11 PM (10 months ago)
Author:
jluc@…
Message:

une constante NOSPAM_DOMAINES_AMIS permet d'indiquer une liste de domaines dont les liens ne sont pas restreints (séparés par des virgules). Cette liste s'ajoute au domaine du site automatiquement pris en compte.

Location:
_plugins_/nospam
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/nospam/inc/nospam.php

    r101694 r113961  
    213213        }
    214214
    215         // ne pas prendre en compte les liens sur le meme domaine que celui du site
    216         $allowed = array();
    217         $tests = array($GLOBALS['meta']['adresse_site'],url_de_base());
    218         foreach ($tests as $t){
    219                 if ($parse = parse_url($t)
    220                         AND $parse['host']){
    221                         $host = explode(".",$parse['host']);
    222                         while (count($host)>2) array_shift($host);
    223                         $allowed[] = implode(".",$host);
    224                 }
    225         }
    226         if (count($allowed)){
    227                 $allowed = array_map('preg_quote',$allowed);
    228                 $allowed = implode("|",$allowed);
    229                 $allowed = "/($allowed)$/";
    230                 spip_log("domaines whitelist pour les liens spams : $allowed","nospam");
     215        // Ne pas prendre en compte les liens sur les domaines explicitement autorisés
     216        // Il ne faut ni http(s):// ni www dedans, juste le NDD (et éventuellement un sous domaine)
     217        if (defined('NOSPAM_DOMAINES_AMIS') and NOSPAM_DOMAINES_AMIS) {
     218                $amis = explode (',', NOSPAM_DOMAINES_AMIS);
     219                $amis = array_filter(array_map('trim', $amis));
    231220        }
    232221        else
    233                 $allowed = "";
    234 
     222                $amis = array();
     223
     224        foreach (array($GLOBALS['meta']['adresse_site'],url_de_base()) as $a){
     225                $host = parse_url($a, PHP_URL_HOST);
     226                if ($host) {
     227                        $host = explode(".", $host);
     228                        $amis[] = implode(".",array_slice($host, -2));
     229                }
     230        }
     231
     232        if (count($amis)){
     233                $amis = array_unique($amis);
     234                $amis = array_map('preg_quote', $amis);
     235                $amis = '/('.implode("|",$amis).')$/';
     236                spip_log("domaines whitelist pour les liens spams : $amis","nospam");
     237        }
     238        else
     239                $amis = "";
    235240
    236241        $hosts = array();
     
    239244                if ($parse = parse_url($url)
    240245                  AND $parse['host']
    241                   AND (!$allowed OR !preg_match($allowed,$parse['host'])))
     246                  AND (!$amis OR !preg_match($amis,$parse['host'])))
    242247                        $hosts[] = $parse['host'];
    243248        }
     
    261266        return false;
    262267}
    263 ?>
  • _plugins_/nospam/paquet.xml

    r106244 r113961  
    22        prefix="nospam"
    33        categorie="performance"
    4         version="1.5.18"
     4        version="1.6.0"
    55        etat="stable"
    66        compatibilite="[2.0.0;3.2.*]"
  • _plugins_/nospam/plugin.xml

    r106244 r113961  
    1010        <icon>images/nospam-32.png</icon>
    1111        <licence>(c) 2008 GPL</licence>
    12         <version>1.5.18</version>
     12        <version>1.6.0</version>
    1313        <etat>stable</etat>
    1414        <description><multi>
Note: See TracChangeset for help on using the changeset viewer.