From 76f1522bf6f26a6d980a94656d23105c0287eb3c Mon Sep 17 00:00:00 2001 From: Mystikfluu Date: Sun, 31 Jul 2022 11:49:11 +0200 Subject: [PATCH] move getIP function to its own module --- extra_modules/getip.js | 12 ++++++++++++ extra_modules/unsign.js | 3 ++- server.js | 11 +---------- server_config.json | 4 ++-- 4 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 extra_modules/getip.js diff --git a/extra_modules/getip.js b/extra_modules/getip.js new file mode 100644 index 0000000..5c57c7c --- /dev/null +++ b/extra_modules/getip.js @@ -0,0 +1,12 @@ +/** + * gets ip of a request + * @param {request} req + * @returns ip of the given request, after taking preferred headers into account + */ + function getIP(req) { + let ip = req.socket.remoteAddress; + if(req.headers[config.preferred_ip_header] != undefined && ip == config.only_prefer_when_ip)ip = req.headers[config.preferred_ip_header] + return ip + } + +module.exports = getIP \ No newline at end of file diff --git a/extra_modules/unsign.js b/extra_modules/unsign.js index 68c1520..793826e 100644 --- a/extra_modules/unsign.js +++ b/extra_modules/unsign.js @@ -1,6 +1,7 @@ const signature = require('cookie-signature') const fs = require('fs'); const cookiesecret = fs.readFileSync("cookiesecret.txt").toString() +const getIP = require("./extra_modules/getip.js") /** * usignes a string * @param {string} text text to unsign @@ -9,7 +10,7 @@ const cookiesecret = fs.readFileSync("cookiesecret.txt").toString() * @return {string/boolean} unsigned text, or if unsigning was unsuccessful, false */ function unsign(text,req,res) { - let ip = req.socket.remoteAddress + let ip = getIP(req) let unsigned = signature.unsign(text,cookiesecret+ip) if(!unsigned) { return false diff --git a/server.js b/server.js index f44c2d9..a4c831c 100644 --- a/server.js +++ b/server.js @@ -102,16 +102,7 @@ const cookiesecret = fs.readFileSync("cookiesecret.txt").toString() const SHA = require("./extra_modules/SHA.js") -/** - * gets ip of a request - * @param {request} req - * @returns ip of the given request, after taking preferred headers into account - */ -function getIP(req) { - let ip = req.socket.remoteAddress; - if(req.headers[config.preferred_ip_header] != undefined && ip == config.only_prefer_when_ip)ip = req.headers[config.preferred_ip_header] - return ip -} +const getIP = require("./extra_modules/getip.js") /** * quick function to convert data to base64 diff --git a/server_config.json b/server_config.json index 931cb30..a754fa8 100644 --- a/server_config.json +++ b/server_config.json @@ -1,7 +1,7 @@ { "allow_getotheruser_without_cookie": true, - "preferred_ip_header": "X-REAL-IP", - "only_prefer_when_ip": "::ffff:192.168.0.1", + "preferred_ip_header": "x-real-ip", + "only_prefer_when_ip": "::ffff:127.0.0.1", "mysql": { "connections":1000, "host":"localhost",