Skip to content

Commit 3d5bd59

Browse files
committed
fix: SQL Injection via righe Parameter in confronta_righe Modals
1 parent 4397067 commit 3d5bd59

6 files changed

Lines changed: 24 additions & 18 deletions

File tree

modules/contratti/modals/confronta_righe.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
$contratto = Contratto::find($id_record);
2626

2727
$id_anagrafica = $contratto->idanagrafica;
28-
$righe = $_GET['righe'];
29-
28+
$righe_ids = array_map('intval', explode(',', $_GET['righe'] ?? ''));
29+
$placeholders = implode(',', array_fill(0, count($righe_ids), '?'));
3030
$righe = $dbo->fetchArray(
3131
'SELECT
3232
`mg_articoli_lang`.`title`,
@@ -37,7 +37,8 @@
3737
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_contratti`.`idarticolo`
3838
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
3939
WHERE
40-
`co_righe_contratti`.`id` IN ('.$righe.')'
40+
`co_righe_contratti`.`id` IN ('.$placeholders.')',
41+
$righe_ids
4142
);
4243
?>
4344
<form action="" method="post" id="add-form">

modules/ddt/modals/confronta_righe.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
$id_anagrafica = $ddt->idanagrafica;
2828
$direzione = $ddt->direzione;
29-
$righe = $_GET['righe'];
30-
29+
$righe_ids = array_map('intval', explode(',', $_GET['righe'] ?? ''));
30+
$placeholders = implode(',', array_fill(0, count($righe_ids), '?'));
3131
$righe = $dbo->fetchArray(
3232
'SELECT
3333
`mg_articoli_lang`.`title`,
@@ -38,7 +38,8 @@
3838
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `dt_righe_ddt`.`idarticolo`
3939
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
4040
WHERE
41-
`dt_righe_ddt`.`id` IN ('.$righe.')'
41+
`dt_righe_ddt`.`id` IN ('.$placeholders.')',
42+
$righe_ids
4243
);
4344
?>
4445
<form action="" method="post" id="add-form">

modules/fatture/modals/confronta_righe.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
$id_anagrafica = $documento->idanagrafica;
2828
$direzione = $documento->direzione;
29-
$righe = $_GET['righe'];
30-
29+
$righe_ids = array_map('intval', explode(',', $_GET['righe'] ?? ''));
30+
$placeholders = implode(',', array_fill(0, count($righe_ids), '?'));
3131
$righe = $dbo->fetchArray(
3232
'SELECT
3333
`mg_articoli_lang`.`title`,
@@ -38,7 +38,8 @@
3838
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_documenti`.`idarticolo`
3939
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
4040
WHERE
41-
`co_righe_documenti`.`id` IN ('.$righe.')'
41+
`co_righe_documenti`.`id` IN ('.$placeholders.')',
42+
$righe_ids
4243
);
4344
?>
4445
<form action="" method="post" id="add-form">

modules/interventi/modals/confronta_righe.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
$id_anagrafica = $intervento->idanagrafica;
2828
$direzione = $intervento->direzione;
29-
$righe = $_GET['righe'];
30-
29+
$righe_ids = array_map('intval', explode(',', $_GET['righe'] ?? ''));
30+
$placeholders = implode(',', array_fill(0, count($righe_ids), '?'));
3131
$righe = $dbo->fetchArray(
3232
'SELECT
3333
`mg_articoli_lang`.`title`,
@@ -38,7 +38,8 @@
3838
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `in_righe_interventi`.`idarticolo`
3939
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
4040
WHERE
41-
`in_righe_interventi`.`id` IN ('.$righe.')'
41+
`in_righe_interventi`.`id` IN ('.$placeholders.')',
42+
$righe_ids
4243
);
4344
?>
4445
<form action="" method="post" id="add-form">

modules/ordini/modals/confronta_righe.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
$id_anagrafica = $ordine->idanagrafica;
2828
$direzione = $ordine->direzione;
29-
$righe = $_GET['righe'];
30-
29+
$righe_ids = array_map('intval', explode(',', $_GET['righe'] ?? ''));
30+
$placeholders = implode(',', array_fill(0, count($righe_ids), '?'));
3131
$righe = $dbo->fetchArray(
3232
'SELECT
3333
`mg_articoli_lang`.`title`,
@@ -38,7 +38,8 @@
3838
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `or_righe_ordini`.`idarticolo`
3939
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
4040
WHERE
41-
`or_righe_ordini`.`id` IN ('.$righe.')'
41+
`or_righe_ordini`.`id` IN ('.$placeholders.')',
42+
$righe_ids
4243
);
4344
?>
4445
<form action="" method="post" id="add-form">

modules/preventivi/modals/confronta_righe.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
$preventivo = Preventivo::find($id_record);
2626

2727
$id_anagrafica = $preventivo->idanagrafica;
28-
$righe = $_GET['righe'];
29-
28+
$righe_ids = array_map('intval', explode(',', $_GET['righe'] ?? ''));
29+
$placeholders = implode(',', array_fill(0, count($righe_ids), '?'));
3030
$righe = $dbo->fetchArray(
3131
'SELECT
3232
`mg_articoli_lang`.`title`,
@@ -37,7 +37,8 @@
3737
INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `co_righe_preventivi`.`idarticolo`
3838
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
3939
WHERE
40-
`co_righe_preventivi`.`id` IN ('.$righe.')'
40+
`co_righe_preventivi`.`id` IN ('.$placeholders.')',
41+
$righe_ids
4142
);
4243
?>
4344
<form action="" method="post" id="add-form">

0 commit comments

Comments
 (0)