Shaare your links...
33139 links
Liens en vrac de sebsauvage Home Login RSS Feed ATOM Feed Tag cloud Picture wall Daily
Links per page: 20 50 100
page 1 / 1
  • programmation sécurité
    Sécuriser le formulaire de login de DokuWiki avec TOTP
    Suite à mon petit guide (http://sebsauvage.net/links/?-EXrUg) voici en exemple comment sécuriser le formulaire de login de DokuWiki avec TOTP.
    La bonne manière de faire aurait été de créer un plugin d'authentification spécifique, mais j'ai choisi de taper directement dans le code (ce qui obligera à refaire la manip à la prochaine mise à jour, mais c'est assez rapide à faire: 6 lignes à modifier).

    EDIT: J'ai mis ça sur le wiki: http://sebsauvage.net/wiki/doku.php?id=totp#dokuwiki


    Dans inc/html.php:
    --------------------------------------------------------------------------------------------------------------------------------------------
    --- html.php.original Mon Jul 14 13:49:34 2014
    +++ html.php Mon Jul 14 19:51:35 2014
    @@ -47,6 +47,7 @@
        $form->addHidden('do', 'login');
        $form->addElement(form_makeTextField('u', ((!$INPUT->bool('http_credentials')) ? $INPUT->str('u') : ''), $lang['user'], 'focus__this', 'block'));
        $form->addElement(form_makePasswordField('p', $lang['pass'], '', 'block'));
    +    $form->addElement(form_makePasswordField('otp', 'OTP', '', 'block'));
        if($conf['rememberme']) {
            $form->addElement(form_makeCheckboxField('r', '1', $lang['remember'], 'remember__me', 'simple'));
        }
    --------------------------------------------------------------------------------------------------------------------------------------------


    Dans inc/auth.php
    --------------------------------------------------------------------------------------------------------------------------------------------
    --- auth.php.original Mon Jul 14 13:49:33 2014
    +++ auth.php Mon Jul 14 20:14:55 2014
    @@ -110,6 +110,7 @@
            $evdata = array(
                'user'     => $INPUT->str('u'),
                'password' => $INPUT->str('p'),
    +            'otp' => $INPUT->str('otp'),
                'sticky'   => $INPUT->bool('r'),
                'silent'   => $INPUT->bool('http_credentials')
            );
    @@ -179,6 +180,7 @@
        return auth_login(
            $evdata['user'],
            $evdata['password'],
    +        $evdata['otp'],
            $evdata['sticky'],
            $evdata['silent']
        );
    @@ -213,7 +215,7 @@
     * @param   bool    $silent  Don't show error on bad auth
     * @return  bool             true on successful auth
     */
    -function auth_login($user, $pass, $sticky = false, $silent = false) {
    +function auth_login($user, $pass, $otp, $sticky = false, $silent = false) {
        global $USERINFO;
        global $conf;
        global $lang;
    @@ -228,7 +230,8 @@

        if(!empty($user)) {
            //usual login
    -        if($auth->checkPass($user, $pass)) {
    +        require_once realpath(dirname(__FILE__).'/../../myotp/myotp.php');  // Lien vers votre librairie OTP
    +        if($auth->checkPass($user, $pass)  && checkOTP($otp))   {
                // make logininfo globally available
                $INPUT->server->set('REMOTE_USER', $user);
                $secret                 = auth_cookiesalt(!$sticky, true); //bind non-sticky to session
    --------------------------------------------------------------------------------------------------------------------------------------------

    Et voilà !

    PS: Je me suis aussi fait Codiad, QuiXplorer et quelques autres.
    2014-07-14 20:11:06
    ?YVNepA
Links per page: 20 50 100
page 1 / 1
Shaarli 0.0.41 beta modifiée - 2022-08-11 - The personal, minimalist, super-fast, no-database delicious clone. By sebsauvage.net. Theme by idleman.fr. I'm on Mastodon.
shelter.moe