- fixed criticità sulla password e su tokens che potevi richiedere sul projection.

This commit is contained in:
Surya Paolo
2024-03-26 18:11:19 +01:00
parent 39687265c8
commit de13c42f8b

View File

@@ -1967,6 +1967,22 @@ module.exports = {
return query;
},
sanitizzaProjection: function (mioproj) {
// mioproj = {valore: '$password'};
const COL_TO_REMOVE = ['$password', '$tokens', '$tokens.token', 'ipaddr'];
for (let chiave in mioproj) {
// Elimina questa richiesta della password !
if (COL_TO_REMOVE.includes(mioproj[chiave])) {
delete mioproj[chiave];
}
}
return mioproj;
},
getLookup: function (params, num, pass_proj, proj_add) {
const query = [];
@@ -1998,6 +2014,7 @@ module.exports = {
if (params.lk_tab) {
let proj = params.lk_proj;
proj = this.sanitizzaProjection(proj);
if (!!pass_proj) {
proj = pass_proj;
}
@@ -2752,6 +2769,8 @@ module.exports = {
// NUOVA VERSIONE
let proj = params.lookup2 ? params.lookup2.lk_proj : null;
proj = this.sanitizzaProjection(proj);
if (params.proj0) {
query.push({ $project: params.proj0 });
}
@@ -3050,12 +3069,17 @@ module.exports = {
if (ris) {
if (params.table === 'users') {
for (const myrec of ris.rows) {
myrec.password = '**********';
if (myrec.ipaddr)
myrec.ipaddr = '';
if (myrec.tokens)
myrec.tokens = [];
if (myrec.password)
myrec.password = '';
}
} else if (params.table === 'mygroups') {
for (const myrec of ris.rows) {
if (myrec.pwd_cryp)
myrec.pwd_cryp = '**********';
myrec.pwd_cryp = '';
}
}
@@ -4927,7 +4951,7 @@ module.exports = {
* Funzione per scaricare dati GeoJSON dei comuni d'Italia e salvarli localmente.
* @param {string} url - L'URL dal quale scaricare i dati GeoJSON.
* @param {string} outputPath - Il percorso del file in cui salvare i dati GeoJSON.
*/
*/
async downloadGeoJSON(url, outputPath) {
try {
// Effettua una richiesta GET all'URL specificato per scaricare i dati.