Skip to content

Commit 0067b16

Browse files
committed
fix: Corrette vulnerabilità SQL injection attraverso l'utilizzo della funzione prepare() per l'escaping delle variabili nelle query SQL.
1 parent b664b91 commit 0067b16

15 files changed

Lines changed: 35 additions & 34 deletions

File tree

modules/anagrafiche/ajax/complete.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
// Elenco sedi con <option>
4141
case 'get_sedi_select':
4242
$idanagrafica = get('idanagrafica');
43-
$q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".Modules::getAdditionalsQuery(Module::where('name', 'Anagrafiche')->first()->id).' ORDER BY id';
43+
$q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica=".prepare($idanagrafica).' '.Modules::getAdditionalsQuery(Module::where('name', 'Anagrafiche')->first()->id).' ORDER BY id';
4444
$rs = $dbo->fetchArray($q);
4545
$n = sizeof($rs);
4646

modules/anagrafiche/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ function risolviConto(tipo){
590590
</div>
591591
<div class="row">
592592
<div class="col-md-6">';
593-
$rs = $dbo->fetchArray("SELECT idtipointervento FROM an_anagrafiche_tipiintervento WHERE idanagrafica='".$id_record."'");
593+
$rs = $dbo->fetchArray("SELECT idtipointervento FROM an_anagrafiche_tipiintervento WHERE idanagrafica=".prepare($id_record));
594594
$idtipiintervento = array('-1');
595595
for( $i=0; $i<sizeof($rs); $i++ ){
596596
array_push( $idtipiintervento, $rs[$i]['idtipointervento'] );

modules/interventi/plugins/mappa.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@
6969
$val = html_entity_decode((string) $rs1[$i]['idanagrafica']);
7070
$id_sede = $dbo->selectOne('in_interventi', '*', ['id' => $rs1[$i]['id']])['idsede_destinazione'];
7171
if ($id_sede) {
72-
$query = "SELECT *, nomesede AS ragione_sociale FROM an_sedi WHERE id='".$id_sede."'";
72+
$query = "SELECT *, nomesede AS ragione_sociale FROM an_sedi WHERE id=".prepare($id_sede);
7373
$rs = $dbo->fetchArray($query);
7474
} else {
75-
$query = "SELECT *, ragione_sociale FROM an_anagrafiche WHERE idanagrafica='".$val."'";
75+
$query = "SELECT *, ragione_sociale FROM an_anagrafiche WHERE idanagrafica=".prepare($val);
7676
$rs = $dbo->fetchArray($query);
7777
}
7878

modules/scadenzario/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
$id_modulo_banche = Module::where('name', 'Banche')->first()->id;
2727
$id_modulo_prima_nota = Module::where('name', 'Prima nota')->first()->id;
2828

29-
$mesi_chiusura = $dbo->fetchArray('SELECT mese FROM an_pagamenti_anagrafiche WHERE idanagrafica = '.$record['idanagrafica']);
29+
$mesi_chiusura = $dbo->fetchArray('SELECT mese FROM an_pagamenti_anagrafiche WHERE idanagrafica = '.prepare($record['idanagrafica']));
3030
$scadenza_in_chiusura = 0;
3131

3232
foreach ($scadenze as $scadenza) {

plugins/automezzi_danni/row-list-danni.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
if (!empty($danni)) {
4848
$disabled = $user->gruppo == 'Tecnici' ? 'disabled' : '';
4949
foreach ($danni as $danno) {
50-
$n_file = $dbo->fetchNum('SELECT * FROM zz_files WHERE id_record='.$danno['id'].' AND id_plugin='.$id_plugin);
50+
$n_file = $dbo->fetchNum('SELECT * FROM zz_files WHERE id_record='.prepare($danno['id']).' AND id_plugin='.prepare($id_plugin));
5151
echo '
5252
<tr>
5353
<td class="text-center">'.Translator::dateToLocale($danno['data']).'</td>

plugins/automezzi_manutenzioni/row-list-manutenzioni.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
if (!empty($manutenzioni)) {
5151
$disabled = $user->gruppo == 'Tecnici' ? 'disabled' : '';
5252
foreach ($manutenzioni as $manutenzione) {
53-
$n_file = $dbo->fetchNum('SELECT * FROM zz_files WHERE id_record='.$manutenzione['id'].' AND id_plugin='.$id_plugin);
53+
$n_file = $dbo->fetchNum('SELECT * FROM zz_files WHERE id_record='.prepare($manutenzione['id']).' AND id_plugin='.prepare($id_plugin));
5454
echo '
5555
<tr>
5656
<td>'.$manutenzione['descrizione'].'</td>

plugins/automezzi_scadenze/row-list-scadenze.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
if (!empty($scadenze)) {
5353
$disabled = $user->gruppo == 'Tecnici' ? 'disabled' : '';
5454
foreach ($scadenze as $scadenza) {
55-
$n_file = $dbo->fetchNum('SELECT * FROM zz_files WHERE id_record='.$scadenza['id'].' AND id_plugin='.$id_plugin);
55+
$n_file = $dbo->fetchNum('SELECT * FROM zz_files WHERE id_record='.prepare($scadenza['id']).' AND id_plugin='.prepare($id_plugin));
5656
echo '
5757
<tr>
5858
<td>'.$scadenza['descrizione'].'</td>

plugins/pianificazione_interventi/edit.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@
108108
// Informazioni sugli impianti
109109
$info_impianti = '';
110110
if (!empty($promemoria['idimpianti'])) {
111-
$impianti = $dbo->fetchArray('SELECT id, matricola, nome FROM my_impianti WHERE id IN ('.$promemoria['idimpianti'].')');
111+
$impianti_ids = array_map('intval', explode(',', $promemoria['idimpianti']));
112+
$impianti = $dbo->fetchArray('SELECT id, matricola, nome FROM my_impianti WHERE id IN ('.implode(',', $impianti_ids).')');
112113

113114
foreach ($impianti as $impianto) {
114115
$info_impianti .= Modules::link('MyImpianti', $impianto['id'], tr('_NOME_ (_MATRICOLA_)', [

plugins/sedi/actions.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
// Salva le tariffe specifiche per la sede
108108
salvaTariffeSede($id_record, $id_parent);
109109

110-
$referenti = $dbo->fetchArray('SELECT id FROM an_referenti WHERE idsede = '.$id_record);
110+
$referenti = $dbo->fetchArray('SELECT id FROM an_referenti WHERE idsede = '.prepare($id_record));
111111
$id_referenti = (array) post('id_referenti');
112112
$refs = array_diff($referenti, $id_referenti);
113113

update/2_1.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212

1313
for ($i = 0; $i < sizeof($rs); ++$i) {
1414
if ($rivalsainps != '') {
15-
$dbo->query('UPDATE co_righe_documenti SET idrivalsainps="'.$rivalsainps.'", rivalsainps=( (subtotale-sconto) /100 * 4 ) WHERE iddocumento="'.$rs[$i]['id'].'"');
15+
$dbo->query('UPDATE co_righe_documenti SET idrivalsainps='.prepare($rivalsainps).', rivalsainps=( (subtotale-sconto) /100 * 4 ) WHERE iddocumento='.prepare($rs[$i]['id']));
1616
} else {
17-
$dbo->query('UPDATE co_righe_documenti SET idrivalsainps="0", rivalsainps=0 WHERE iddocumento="'.$rs[$i]['id'].'"');
17+
$dbo->query('UPDATE co_righe_documenti SET idrivalsainps="0", rivalsainps=0 WHERE iddocumento='.prepare($rs[$i]['id']));
1818
}
1919

2020
if ($ritenuta != '') {
21-
$dbo->query('UPDATE co_righe_documenti SET idritenutaacconto="'.$ritenuta.'", ritenutaacconto=( (subtotale+rivalsainps-sconto) /100 * 20 ) WHERE iddocumento="'.$rs[$i]['id'].'"');
21+
$dbo->query('UPDATE co_righe_documenti SET idritenutaacconto='.prepare($ritenuta).', ritenutaacconto=( (subtotale+rivalsainps-sconto) /100 * 20 ) WHERE iddocumento='.prepare($rs[$i]['id']));
2222
} else {
23-
$dbo->query('UPDATE co_righe_documenti SET idritenutaacconto="0", ritenutaacconto=0 WHERE iddocumento="'.$rs[$i]['id'].'"');
23+
$dbo->query('UPDATE co_righe_documenti SET idritenutaacconto="0", ritenutaacconto=0 WHERE iddocumento='.prepare($rs[$i]['id']));
2424
}
2525
}

0 commit comments

Comments
 (0)