fix: getPushExample language validation and login check

This commit is contained in:
ptrstr 2025-04-25 15:32:24 -04:00
parent 3b58ac3fd3
commit 1c2fd42ba5
No known key found for this signature in database
GPG key ID: 4BCE1FCF561D680E

View file

@ -10,6 +10,8 @@ const path = require("path");
let gameResolver = new GameResolver(); let gameResolver = new GameResolver();
let gameList = null; let gameList = null;
const LANGUAGE_REGEX = /^[a-zA-Z0-9-_]+$/;
/** /**
* Get a game list via GameDig * Get a game list via GameDig
* @returns {object[]} list of games supported by GameDig * @returns {object[]} list of games supported by GameDig
@ -91,6 +93,19 @@ module.exports.generalSocketHandler = (socket, server) => {
}); });
socket.on("getPushExample", (language, callback) => { socket.on("getPushExample", (language, callback) => {
try {
checkLogin(socket);
if (!LANGUAGE_REGEX.test(language)) {
throw new Error("Invalid language");
}
} catch (e) {
callback({
ok: false,
msg: e.message,
});
return;
}
try { try {
let dir = path.join("./extra/push-examples", language); let dir = path.join("./extra/push-examples", language);