diff --git a/package-lock.json b/package-lock.json index 1256ce0..72474e8 100755 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,6 @@ "cssnano": "^6.0.1", "escape-html": "^1.0.3", "express": "^4.18.2", - "express-brute": "^1.0.1", "express-busboy": "^10.1.0", "ffmpeg-static": "^5.2.0", "fs-extra": "^11.1.1", @@ -51,7 +50,6 @@ "@types/bcrypt": "^5.0.0", "@types/escape-html": "^1.0.1", "@types/express": "^4.17.13", - "@types/express-brute": "^1.0.1", "@types/express-busboy": "^8.0.0", "@types/ffmpeg-static": "^3.0.0", "@types/fs-extra": "^9.0.12", @@ -1061,15 +1059,6 @@ "@types/serve-static": "*" } }, - "node_modules/@types/express-brute": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/express-brute/-/express-brute-1.0.2.tgz", - "integrity": "sha512-p+3ks+pW04poJobPxyEK3FLnBhEbEAVYhc6QXXBoVBzw5yfW+HobKvgCnaQ6d/egBym+tDXGKIuGoAAZbaJadw==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, "node_modules/@types/express-busboy": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@types/express-busboy/-/express-busboy-8.0.0.tgz", @@ -2677,18 +2666,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express-brute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/express-brute/-/express-brute-1.0.1.tgz", - "integrity": "sha512-ieZmwox3oIZdQCVjvvnwQvrKQumWdb/JjmC9mWplF42AuHCBXr6Yk/I+nLTRQx+9F+2aapOW9kYLwA6xIlwA9g==", - "dependencies": { - "long-timeout": "~0.1.1", - "underscore": "~1.8.3" - }, - "peerDependencies": { - "express": "4.x" - } - }, "node_modules/express-busboy": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/express-busboy/-/express-busboy-10.1.0.tgz", @@ -3718,11 +3695,6 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "node_modules/long-timeout": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", - "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==" - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -6202,11 +6174,6 @@ "node": ">=4.2.0" } }, - "node_modules/underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==" - }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -7378,15 +7345,6 @@ "@types/serve-static": "*" } }, - "@types/express-brute": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/express-brute/-/express-brute-1.0.2.tgz", - "integrity": "sha512-p+3ks+pW04poJobPxyEK3FLnBhEbEAVYhc6QXXBoVBzw5yfW+HobKvgCnaQ6d/egBym+tDXGKIuGoAAZbaJadw==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, "@types/express-busboy": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@types/express-busboy/-/express-busboy-8.0.0.tgz", @@ -8635,15 +8593,6 @@ } } }, - "express-brute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/express-brute/-/express-brute-1.0.1.tgz", - "integrity": "sha512-ieZmwox3oIZdQCVjvvnwQvrKQumWdb/JjmC9mWplF42AuHCBXr6Yk/I+nLTRQx+9F+2aapOW9kYLwA6xIlwA9g==", - "requires": { - "long-timeout": "~0.1.1", - "underscore": "~1.8.3" - } - }, "express-busboy": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/express-busboy/-/express-busboy-10.1.0.tgz", @@ -9411,11 +9360,6 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "long-timeout": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", - "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==" - }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -11161,11 +11105,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==" - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", diff --git a/package.json b/package.json index 526870b..f6fdbb9 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "cssnano": "^6.0.1", "escape-html": "^1.0.3", "express": "^4.18.2", - "express-brute": "^1.0.1", "express-busboy": "^10.1.0", "ffmpeg-static": "^5.2.0", "fs-extra": "^11.1.1", @@ -84,7 +83,6 @@ "@types/bcrypt": "^5.0.0", "@types/escape-html": "^1.0.1", "@types/express": "^4.17.13", - "@types/express-brute": "^1.0.1", "@types/express-busboy": "^8.0.0", "@types/ffmpeg-static": "^3.0.0", "@types/fs-extra": "^9.0.12", diff --git a/src/ass.ts b/src/ass.ts index e0992ac..14f5e4b 100644 --- a/src/ass.ts +++ b/src/ass.ts @@ -59,24 +59,6 @@ app.disable('x-powered-by'); app.set('trust proxy', isProxied); app.set('view engine', 'pug'); -// Rate limiting using express-brute -// ! Notice ! -// The rate limiting used here is very trivial and should be used with caution. -// I plan to improve this in the future somehow (possibly with redis, who knows). -// - tycrek, 2022-08-18 -// todo: fix this eventually -import ExpressBrute from 'express-brute'; -const bruteforce = new ExpressBrute(new ExpressBrute.MemoryStore(), { - freeRetries: 50, - minWait: 50, // 50ms - maxWait: 500, // 500ms - lifetime: 5, // 5 seconds - failCallback: (_req, res, _next, _nextValidRequestDate) => res.sendStatus(429), -}); - -// Routes to protect -app.get(['/'], bruteforce.prevent, (_req, _res, next) => next()); - // Express logger middleware // app.use(log.middleware());