mirror of
https://github.com/Infisical/infisical.git
synced 2025-03-29 22:02:57 +00:00
Increase rate limits for API
This commit is contained in:
backend/src
@ -317,7 +317,7 @@ export const getWorkspaceServiceTokens = async (
|
|||||||
let serviceTokens;
|
let serviceTokens;
|
||||||
try {
|
try {
|
||||||
const { workspaceId } = req.params;
|
const { workspaceId } = req.params;
|
||||||
|
// ?? FIX.
|
||||||
serviceTokens = await ServiceToken.find({
|
serviceTokens = await ServiceToken.find({
|
||||||
user: req.user._id,
|
user: req.user._id,
|
||||||
workspace: workspaceId
|
workspace: workspaceId
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import rateLimit from 'express-rate-limit';
|
import rateLimit from 'express-rate-limit';
|
||||||
|
|
||||||
// 300 requests per 15 minutes
|
// 450 requests per 15 minutes
|
||||||
const apiLimiter = rateLimit({
|
const apiLimiter = rateLimit({
|
||||||
windowMs: 15 * 60 * 1000,
|
windowMs: 15 * 60 * 1000,
|
||||||
max: 450,
|
max: 450,
|
||||||
@ -11,23 +11,15 @@ const apiLimiter = rateLimit({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 5 requests per hour
|
// 10 requests per minute
|
||||||
const signupLimiter = rateLimit({
|
const authLimiter = rateLimit({
|
||||||
windowMs: 60 * 60 * 1000,
|
windowMs: 60 * 1000,
|
||||||
max: 10,
|
max: 10,
|
||||||
standardHeaders: true,
|
standardHeaders: true,
|
||||||
legacyHeaders: false
|
legacyHeaders: false
|
||||||
});
|
});
|
||||||
|
|
||||||
// 10 requests per hour
|
// 10 requests per hour
|
||||||
const loginLimiter = rateLimit({
|
|
||||||
windowMs: 60 * 60 * 1000,
|
|
||||||
max: 25,
|
|
||||||
standardHeaders: true,
|
|
||||||
legacyHeaders: false
|
|
||||||
});
|
|
||||||
|
|
||||||
// 5 requests per hour
|
|
||||||
const passwordLimiter = rateLimit({
|
const passwordLimiter = rateLimit({
|
||||||
windowMs: 60 * 60 * 1000,
|
windowMs: 60 * 60 * 1000,
|
||||||
max: 10,
|
max: 10,
|
||||||
@ -35,4 +27,8 @@ const passwordLimiter = rateLimit({
|
|||||||
legacyHeaders: false
|
legacyHeaders: false
|
||||||
});
|
});
|
||||||
|
|
||||||
export { apiLimiter, signupLimiter, loginLimiter, passwordLimiter };
|
export {
|
||||||
|
apiLimiter,
|
||||||
|
authLimiter,
|
||||||
|
passwordLimiter
|
||||||
|
};
|
||||||
|
@ -3,13 +3,13 @@ const router = express.Router();
|
|||||||
import { body } from 'express-validator';
|
import { body } from 'express-validator';
|
||||||
import { requireAuth, validateRequest } from '../../middleware';
|
import { requireAuth, validateRequest } from '../../middleware';
|
||||||
import { authController } from '../../controllers/v1';
|
import { authController } from '../../controllers/v1';
|
||||||
import { loginLimiter } from '../../helpers/rateLimiter';
|
import { authLimiter } from '../../helpers/rateLimiter';
|
||||||
|
|
||||||
router.post('/token', validateRequest, authController.getNewToken);
|
router.post('/token', validateRequest, authController.getNewToken);
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/login1',
|
'/login1',
|
||||||
loginLimiter,
|
authLimiter,
|
||||||
body('email').exists().trim().notEmpty(),
|
body('email').exists().trim().notEmpty(),
|
||||||
body('clientPublicKey').exists().trim().notEmpty(),
|
body('clientPublicKey').exists().trim().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@ -18,7 +18,7 @@ router.post(
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/login2',
|
'/login2',
|
||||||
loginLimiter,
|
authLimiter,
|
||||||
body('email').exists().trim().notEmpty(),
|
body('email').exists().trim().notEmpty(),
|
||||||
body('clientProof').exists().trim().notEmpty(),
|
body('clientProof').exists().trim().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@ -27,11 +27,13 @@ router.post(
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/logout',
|
'/logout',
|
||||||
|
authLimiter,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: ['jwt']
|
||||||
}),
|
}),
|
||||||
authController.logout
|
authController.logout
|
||||||
);
|
);
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/checkAuth',
|
'/checkAuth',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
|
@ -3,11 +3,11 @@ const router = express.Router();
|
|||||||
import { body } from 'express-validator';
|
import { body } from 'express-validator';
|
||||||
import { requireSignupAuth, validateRequest } from '../../middleware';
|
import { requireSignupAuth, validateRequest } from '../../middleware';
|
||||||
import { signupController } from '../../controllers/v1';
|
import { signupController } from '../../controllers/v1';
|
||||||
import { signupLimiter } from '../../helpers/rateLimiter';
|
import { authLimiter } from '../../helpers/rateLimiter';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/email/signup',
|
'/email/signup',
|
||||||
signupLimiter,
|
authLimiter,
|
||||||
body('email').exists().trim().notEmpty().isEmail(),
|
body('email').exists().trim().notEmpty().isEmail(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
signupController.beginEmailSignup
|
signupController.beginEmailSignup
|
||||||
@ -15,7 +15,7 @@ router.post(
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/email/verify',
|
'/email/verify',
|
||||||
signupLimiter,
|
authLimiter,
|
||||||
body('email').exists().trim().notEmpty().isEmail(),
|
body('email').exists().trim().notEmpty().isEmail(),
|
||||||
body('code').exists().trim().notEmpty(),
|
body('code').exists().trim().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@ -24,7 +24,7 @@ router.post(
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/complete-account/signup',
|
'/complete-account/signup',
|
||||||
signupLimiter,
|
authLimiter,
|
||||||
requireSignupAuth,
|
requireSignupAuth,
|
||||||
body('email').exists().trim().notEmpty().isEmail(),
|
body('email').exists().trim().notEmpty().isEmail(),
|
||||||
body('firstName').exists().trim().notEmpty(),
|
body('firstName').exists().trim().notEmpty(),
|
||||||
@ -42,7 +42,7 @@ router.post(
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/complete-account/invite',
|
'/complete-account/invite',
|
||||||
signupLimiter,
|
authLimiter,
|
||||||
requireSignupAuth,
|
requireSignupAuth,
|
||||||
body('email').exists().trim().notEmpty().isEmail(),
|
body('email').exists().trim().notEmpty().isEmail(),
|
||||||
body('firstName').exists().trim().notEmpty(),
|
body('firstName').exists().trim().notEmpty(),
|
||||||
|
Reference in New Issue
Block a user