ソースを参照

fix: prevent user enumeration using local login timings

NGPixel 2 年 前
コミット
4b3005057f
1 ファイル変更5 行追加0 行削除
  1. 5 0
      server/modules/authentication/local/authentication.js

+ 5 - 0
server/modules/authentication/local/authentication.js

@@ -1,3 +1,5 @@
+const bcrypt = require('bcryptjs-then')
+
 /* global WIKI */
 
 // ------------------------------------
@@ -28,6 +30,9 @@ module.exports = {
               done(null, user)
             }
           } else {
+            // Fake verify password to mask timing differences
+            await bcrypt.compare((Math.random() + 1).toString(36), '$2a$12$irXbAcQSY59pcQQfNQpY8uyhfSw48nzDikAmr60drI501nR.PuBx2')
+
             done(new WIKI.Error.AuthLoginFailed(), null)
           }
         } catch (err) {