Live (In a Volcano) community card game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

192 lines
4.0 KiB

// limiter.js
// Copyright (C) 2022 DTP Technologies, LLC
// License: Apache-2.0
'use strict';
const ONE_SECOND = 1000;
const ONE_MINUTE = ONE_SECOND * 60;
const ONE_HOUR = ONE_MINUTE * 60;
module.exports = {
/*
* AuthController
*/
auth: {
postOtpEnable: {
total: 5,
expire: ONE_MINUTE * 30,
message: 'You are enabling One-Time Passwords too quickly. Please try again later',
},
postOtpAuthenticate: {
total: 5,
expire: ONE_MINUTE,
message: 'You are trying One-Time Passwords too quickly. Please try again later',
},
postLogin: {
total: 10,
expire: ONE_MINUTE,
message: 'You are logging in too quickly',
},
getPersonalApiToken: {
total: 20,
expire: ONE_MINUTE,
message: 'You are logging in too quickly',
},
getSocketToken: {
total: 20,
expire: ONE_MINUTE,
message: 'You are logging in too quickly',
},
getLogout: {
total: 10,
expire: ONE_MINUTE,
message: 'You are logging out too quickly',
},
},
comment: {
deleteComment: {
total: 1,
expire: ONE_MINUTE,
message: 'You are deleting comments too quickly',
},
},
/*
* ContentReportController
*/
contentReport: {
postCommentReportForm: {
total: 5,
expire: ONE_MINUTE,
message: 'You are reporting comments too quickly',
},
postCommentReport: {
total: 1,
expire: ONE_MINUTE,
message: 'You are reporting comments too quickly',
},
},
/*
* EmailController
*/
email: {
getEmailOptOut: {
total: 10,
expire: ONE_HOUR,
message: "You really don't need to do that this much.",
},
getEmailVerify: {
total: 10,
expire: ONE_HOUR,
message: "You really don't need to do that this much and can stop.",
},
},
/*
* HelpController
*/
help: {
getHome: {
total: 20,
expire: ONE_MINUTE,
message: 'You are loading help too quickly',
}
},
/*
* HomeController
*/
home: {
getHome: {
total: 20,
expire: ONE_MINUTE,
message: 'You are loading the home page too quickly',
}
},
/*
* ImageController
*/
image: {
postCreateImage: {
total: 5,
expire: ONE_MINUTE,
message: 'You are uploading images too quickly',
},
getImage: {
// 50 per second on a 10-second scale
// it simply *is* a limit instead of not having one at all,
// and will help mitigate severe attacks
total: 500,
expire: ONE_SECOND * 10,
message: 'You are requesting images too quickly',
},
},
/*
* ManifestController
*/
manifest: {
getManifest: {
total: 5,
expire: ONE_SECOND,
message: 'You are fetching application manifests too quickly',
}
},
/*
* UserController
*/
user: {
postCreate: {
total: 4,
expire: ONE_MINUTE,
message: 'You are creating accounts too quickly',
},
postProfilePhoto: {
total: 5,
expire: ONE_MINUTE * 5,
message: 'You are updating your profile photo too quickly',
},
postUpdateSettings: {
total: 4,
expire: ONE_MINUTE,
message: 'You are updating account settings too quickly',
},
getOtpSetup: {
total: 10,
expire: ONE_MINUTE,
message: 'You are configuring two-factor authentication too quickly',
},
getOtpDisable: {
total: 10,
expire: ONE_MINUTE,
message: 'You are disabling two-factor authentication too quickly',
},
getSettings: {
total: 8,
expire: ONE_MINUTE,
message: 'You are requesting user settings too quickly',
},
getUserProfile: {
total: 12,
expire: ONE_MINUTE,
message: 'You are requesting user profiles too quickly',
},
deleteProfilePhoto: {
total: 5,
expire: ONE_MINUTE * 5,
message: 'You are deleting your profile photo too quickly',
},
},
welcome: {
total: 12,
expire: ONE_MINUTE,
message: 'You are loading these pages too quickly',
},
};