yusuketk 6 лет назад
Родитель
Сommit
2672a67973
2 измененных файлов с 10 добавлено и 2 удалено
  1. 5 1
      src/server/routes/login-passport.js
  2. 5 1
      src/server/routes/login.js

+ 5 - 1
src/server/routes/login-passport.js

@@ -24,7 +24,11 @@ module.exports = function(crowi, app) {
     const jumpTo = req.session.jumpTo;
     if (jumpTo) {
       req.session.jumpTo = null;
-      return res.redirect(jumpTo);
+
+      // prevention from open redirect
+      if (!jumpTo.match(/^\/\/.+$/)) {
+        return res.redirect(jumpTo);
+      }
     }
 
     return res.redirect('/');

+ 5 - 1
src/server/routes/login.js

@@ -37,7 +37,11 @@ module.exports = function(crowi, app) {
     const jumpTo = req.session.jumpTo;
     if (jumpTo) {
       req.session.jumpTo = null;
-      return res.redirect(jumpTo);
+
+      // prevention from open redirect
+      if (!jumpTo.match(/^\/\/.+$/)) {
+        return res.redirect(jumpTo);
+      }
     }
 
     return res.redirect('/');