feat(privat/CV): sync to latest upstream (cv-upstream/main, 30f9608b)
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import rateLimit from 'express-rate-limit'
|
||||
|
||||
/**
|
||||
* Per-endpoint rate limiters. Limits are per IP per hour.
|
||||
* Behind a reverse proxy (Caddy), `app.set('trust proxy', 1)` must be set
|
||||
* so the real client IP is used instead of the proxy IP.
|
||||
*/
|
||||
function makeLimiter(max, message) {
|
||||
return rateLimit({
|
||||
windowMs: 60 * 60 * 1000, // 1 hour
|
||||
max,
|
||||
standardHeaders: true,
|
||||
legacyHeaders: false,
|
||||
message: { error: message },
|
||||
})
|
||||
}
|
||||
|
||||
export const contactLimiter = makeLimiter(3, 'Zu viele Anfragen. Bitte versuche es später erneut.')
|
||||
export const talkRequestLimiter = makeLimiter(3, 'Zu viele Anfragen. Bitte versuche es später erneut.')
|
||||
export const newsletterLimiter = makeLimiter(5, 'Zu viele Anfragen. Bitte versuche es später erneut.')
|
||||
export const resourceLimiter = makeLimiter(10, 'Zu viele Anfragen. Bitte versuche es später erneut.')
|
||||
Reference in New Issue
Block a user