Changeset 96700 in spip-zone for _plugins_/facteur


Ignore:
Timestamp:
Apr 20, 2016, 12:18:27 PM (3 years ago)
Author:
cedric@…
Message:

Dans la configuration du facteur, le password peut etre une API key qu'on ne veut pas divulguer, mais le champ password est facile a lire avec un firebug.
On n'y injecte donc plus le mot de passe actuel, qui est affiche partiellement en dessous pour verifier si il est bon
(si le mot de passe est court, on affiche que des * a la place des caracteres, si il est long on affiche une portion de 10% au debut et a la fin)
Si le champ est vide, la configuration actuelle est conservee, si un nouveau mot de passe est saisi il est mis en configuration et conserve dans le formulaire
Ce format de saisie pourrait etre un pattern a generaliser pour les saisies d'API key ou mot de passe un peu sensible

Location:
_plugins_/facteur/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/facteur/trunk/facteur_fonctions.php

    r87515 r96700  
    88
    99if (!defined("_ECRIRE_INC_VERSION")) return;
     10
     11function facteur_affiche_password_masque($pass){
     12        $l = strlen($pass);
     13        if ($l<=8){
     14                return str_pad('',$l,'*');
     15        }
     16        $e = intval(ceil($l/10));
     17        $mid = str_pad('',$l-2*$e,'*');
     18        if (strlen($mid)>8){
     19                $mid = '***...***';
     20        }
     21        return substr($pass,0,$e) . $mid . substr($pass,-$e);
     22}
    1023
    1124/**
     
    292305/**
    293306 * Transformer un mail HTML en mail Texte proprement :
    294  * - les tableaux de mise en page sont utilisés pour structurer le mail texte
     307 * - les tableaux de mise en page sont utiliss pour structurer le mail texte
    295308 * - le reste du HTML est markdownifie car c'est un format texte lisible et conventionnel
    296309 *
  • _plugins_/facteur/trunk/formulaires/configurer_facteur.html

    r95477 r96700  
    8585                                                                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_password})</span>]
    8686                                                                        <input type="password" name="facteur_smtp_password" class="text" value="#ENV**{facteur_smtp_password}" id="facteur_smtp_password" />
     87                                                                        [<tt>(#ENV**{_facteur_smtp_password}|facteur_affiche_password_masque)</tt>]
    8788                                                                </li>
    8889                                                        </ul>
  • _plugins_/facteur/trunk/formulaires/configurer_facteur.php

    r96484 r96700  
    2020                'facteur_smtp_auth'           => lire_config('facteur_smtp_auth'),
    2121                'facteur_smtp_username'       => lire_config('facteur_smtp_username'),
    22                 'facteur_smtp_password'       => lire_config('facteur_smtp_password'),
     22                'facteur_smtp_password'       => '',
     23                '_facteur_smtp_password'       => lire_config('facteur_smtp_password'),
    2324                'facteur_smtp_secure'         => lire_config('facteur_smtp_secure'),
    2425                'facteur_smtp_sender'         => lire_config('facteur_smtp_sender'),
     
    7172                        if (!_request('facteur_smtp_username'))
    7273                                $erreurs['facteur_smtp_username'] = _T('info_obligatoire');
    73                         if (!_request('facteur_smtp_password'))
     74                        if (!_request('facteur_smtp_password') AND !lire_config('facteur_smtp_password'))
    7475                                $erreurs['facteur_smtp_password'] = _T('info_obligatoire');
    7576                }
     
    127128        ecrire_meta('facteur_smtp_username', $facteur_smtp_username);
    128129
    129         $facteur_smtp_password = _request('facteur_smtp_password');
    130         ecrire_meta('facteur_smtp_password', $facteur_smtp_password);
     130        if ($facteur_smtp_password = _request('facteur_smtp_password')) {
     131                ecrire_meta('facteur_smtp_password', $facteur_smtp_password);
     132        }
    131133
    132134        if (intval(phpversion()) == 5) {
  • _plugins_/facteur/trunk/paquet.xml

    r96484 r96700  
    22        prefix="facteur"
    33        categorie="communication"
    4         version="3.3.5"
     4        version="3.3.6"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.