diff --git a/index.js b/index.js index 536a4aa..1fa2aff 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,7 @@ require('dotenv').config(); const express = require('express'); -const cors = require('cors'); const helmet = require('helmet'); -const path = require('node:path'); const timeout = require('./middlewares/timeout.js'); const logger = require('./middlewares/morgan.js'); const limiter = require('./middlewares/ratelimit.js'); @@ -18,7 +16,6 @@ app.set('trust proxy', 1); // Use -app.use(cors()); app.use(helmet({ crossOriginEmbedderPolicy: false, crossOriginResourcePolicy: false })); app.use(logger); app.use(limiter); @@ -35,10 +32,10 @@ app.get('/', (req, res) => version, worker: process.pid, contact: 'contact@sefinek.net', - domain: { + domains: { main: 'https://sefinek.net', api: 'https://api.sefinek.net', - cdn: 'https://screenshots.sefinek.net', + cdn: 'https://cdn.sefinek.net', }, }, null, 3)), ); diff --git a/middlewares/modules/favicon.js b/middlewares/modules/favicon.js deleted file mode 100644 index 0f3709d..0000000 --- a/middlewares/modules/favicon.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -const fs = require('node:fs'); -const path = require('node:path'); - -const mime = { - '.png': 'image/png', - '.ico': 'image/x-icon', -}; - -module.exports = (filename, pattern) => { - filename = path.resolve(filename); - pattern = pattern || /\/favicon\.(png|ico)$/; - return (req, res, next) => { - if (pattern.test(req.url)) { - const ext = path.extname(filename); - res.set('Content-Type', mime[ext]); - fs.createReadStream(filename).pipe(res); - } else { - next(); - } - }; -}; \ No newline at end of file diff --git a/middlewares/morgan.js b/middlewares/morgan.js index 0e3033b..d946f2a 100644 --- a/middlewares/morgan.js +++ b/middlewares/morgan.js @@ -1,17 +1,5 @@ const morgan = require('morgan'); -const userAgents = new Set([ - 'Better Uptime Bot Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36', -]); +morgan.token('body', req => JSON.stringify(req.body)); -const skipUserAgent = req => userAgents.has(req.headers['user-agent']); - -const normalizeBody = ({ body }) => { - if (!(body && typeof body === 'object' && Object.keys(body).length)) return null; - - return JSON.stringify(body); -}; - -morgan.token('body', normalizeBody); - -module.exports = morgan('[:status :method :response-time ms] :url :user-agent ":referrer" :body', { skip: skipUserAgent }); \ No newline at end of file +module.exports = morgan('[:status :method :response-time ms] :url :user-agent ":referrer" :body'); \ No newline at end of file diff --git a/middlewares/ratelimit.js b/middlewares/ratelimit.js index c6f3f85..c0cdd45 100644 --- a/middlewares/ratelimit.js +++ b/middlewares/ratelimit.js @@ -3,7 +3,7 @@ const { rateLimited } = require('../middlewares/other/errors.js'); module.exports = rateLimit({ windowMs: 5 * 60 * 1000, - limit: 500, + limit: 12, standardHeaders: 'draft-7', legacyHeaders: false, diff --git a/middlewares/timeout.js b/middlewares/timeout.js index 987101d..09619b5 100644 --- a/middlewares/timeout.js +++ b/middlewares/timeout.js @@ -2,7 +2,7 @@ const timeout = require('express-timeout-handler'); const { onTimeout } = require('./other/errors.js'); module.exports = () => timeout.handler({ - timeout: 8000, + timeout: 6000, onTimeout, disable: ['write', 'setHeaders', 'send', 'json', 'end'], }); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 48b2dc8..fe1c1fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "license": "CC BY-NC-SA 4.0", "dependencies": { - "cors": "^2.8.5", "dotenv": "^16.4.4", "express": "^4.18.2", "express-rate-limit": "^7.1.5", @@ -132,18 +131,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -555,14 +542,6 @@ "node": ">= 0.6" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", diff --git a/package.json b/package.json index 6a3c572..1916580 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,6 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "up": "ncu -u && npm install && npm update && npm audit fix", - "sync": "git pull --recurse-submodules", - "usm": "git submodule update --remote", "mon": "nodemon index.js" }, "repository": { @@ -21,7 +19,6 @@ }, "homepage": "https://github.com/sefinek24/screenshots.sefinek.net#readme", "dependencies": { - "cors": "^2.8.5", "dotenv": "^16.4.4", "express": "^4.18.2", "express-rate-limit": "^7.1.5",