Просмотр исходного кода

Fix password reset rate limit to work on ip, not email which changes every request

James Allen 12 лет назад
Родитель
Сommit
5aa7daa951

+ 5 - 5
services/web/app/coffee/Features/PasswordReset/PasswordResetController.coffee

@@ -11,13 +11,13 @@ module.exports =
 	requestReset: (req, res)->
 	requestReset: (req, res)->
 		email = req.body.email.trim().toLowerCase()
 		email = req.body.email.trim().toLowerCase()
 		opts = 
 		opts = 
-			endpointName:"auto_compile"
-			timeInterval:60
-			subjectName:email
-			throttle: 3
+			endpointName: "password_reset_rate_limit"
+			timeInterval: 60
+			subjectName: req.ip
+			throttle: 6
 		RateLimiter.addCount opts, (err, canCompile)->
 		RateLimiter.addCount opts, (err, canCompile)->
 			if !canCompile
 			if !canCompile
-				return res.send 500
+				return res.send 500, { message: "Rate limit hit. Please wait a while before retrying" }
 			PasswordResetHandler.generateAndEmailResetToken email, (err)->
 			PasswordResetHandler.generateAndEmailResetToken email, (err)->
 				if err?
 				if err?
 					res.send 500, {message:err?.message}
 					res.send 500, {message:err?.message}