diff --git a/database.php b/database.php index a3d1d3a..dac7148 100644 --- a/database.php +++ b/database.php @@ -72,6 +72,18 @@ function syslog_db_fetch_cell($sql, $col_name = '', $log = TRUE) { return db_fetch_cell($sql, $col_name, $log, $syslog_cnn); } +/* syslog_db_fetch_assoc_prepared - run a 'select' sql query and return the first column of the + first row found + @arg $sql - the sql query to run + @arg $params - the parameters to bind to the query + @arg $log - whether or not to log the query to the cacti log + @returns - the result of the query */ +function syslog_db_fetch_assoc_prepared($sql, $params = array(), $log = TRUE) { + global $syslog_cnn; + + return db_fetch_assoc_prepared($sql, $params, $log, $syslog_cnn); +} + /* syslog_db_fetch_cell_prepared - run a 'select' sql query and return the first column of the first row found @param $sql - the sql query to execute diff --git a/syslog.php b/syslog.php index 00fac51..a9288b8 100644 --- a/syslog.php +++ b/syslog.php @@ -291,10 +291,10 @@ function syslog_statistics() { $time = date($date_format, strtotime($r['insert_time'])); form_alternate_row(); - echo '' . (get_request_var('host') != '-2' ? $r['host']:'-') . ''; + echo '' . (get_request_var('host') != '-2' ? htmle($r['host']):'-') . ''; echo '' . (get_request_var('facility') != '-2' ? ucfirst($r['facility']):'-') . ''; echo '' . (get_request_var('priority') != '-2' ? ucfirst($r['priority']):'-') . ''; - echo '' . (get_request_var('program') != '-2' ? ucfirst($r['program']):'-') . ''; + echo '' . (get_request_var('program') != '-2' ? htmle(ucfirst($r['program'])):'-') . ''; //echo '' . $r['insert_time'] . ''; echo '' . $time . ''; echo '' . number_format_i18n($r['records'], -1) . ''; diff --git a/syslog_process.php b/syslog_process.php index 681632b..7d53c8b 100644 --- a/syslog_process.php +++ b/syslog_process.php @@ -272,43 +272,56 @@ $smsalert = ''; $th_sql = ''; + $params = array(); if ($alert['type'] == 'facility') { $sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming` - WHERE ' . $syslog_incoming_config['facilityField'] . "='" . $alert['message'] . "' - AND status=" . $uniqueID; + WHERE ' . $syslog_incoming_config['facilityField'] . '=? + AND status=?'; + $params[] = $alert['message']; + $params[] = $uniqueID; } else if ($alert['type'] == 'messageb') { $sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming` - WHERE ' . $syslog_incoming_config['textField'] . " - LIKE '" . $alert['message'] . "%' - AND status=" . $uniqueID; + WHERE ' . $syslog_incoming_config['textField'] . ' + LIKE ? + AND status=?'; + $params[] = $alert['message'] . '%'; + $params[] = $uniqueID; } else if ($alert['type'] == 'messagec') { $sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming` - WHERE ' . $syslog_incoming_config['textField'] . " - LIKE '%" . $alert['message'] . "%' - AND status=" . $uniqueID; + WHERE ' . $syslog_incoming_config['textField'] . ' + LIKE ? + AND status=?'; + $params[] = '%' . $alert['message'] . '%'; + $params[] = $uniqueID; } else if ($alert['type'] == 'messagee') { $sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming` - WHERE ' . $syslog_incoming_config['textField'] . " - LIKE '%" . $alert['message'] . "' - AND status=" . $uniqueID; + WHERE ' . $syslog_incoming_config['textField'] . ' + LIKE ? + AND status=?'; + $params[] = '%' . $alert['message']; + $params[] = $uniqueID; } else if ($alert['type'] == 'host') { $sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming` - WHERE ' . $syslog_incoming_config['hostField'] . "='" . $alert['message'] . "' - AND status=" . $uniqueID; + WHERE ' . $syslog_incoming_config['hostField'] . '=? + AND status=?'; + $params[] = $alert['message']; + $params[] = $uniqueID; } else if ($alert['type'] == 'sql') { $sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming` - WHERE (' . $alert['message'] . ') - AND status=' . $uniqueID; + WHERE (?) + AND status=?'; + $params[] = $alert['message']; + $params[] = $uniqueID; } if ($sql != '') { if ($alert['method'] == '1') { $th_sql = str_replace('*', 'count(*)', $sql); - $count = syslog_db_fetch_cell($th_sql); + $count = syslog_db_fetch_cell_prepared($th_sql, $params); } if (($alert['method'] == '1' && $count >= $alert['num']) || ($alert['method'] == '0')) { - $at = syslog_db_fetch_assoc($sql); + $at = syslog_db_fetch_assoc_prepared($sql, $params); /* get a date for the repeat alert */ if ($alert['repeat_alert']) {