From 8d0794576c75dd95dca989c09d18ac31b6c6eb97 Mon Sep 17 00:00:00 2001 From: mattf Date: Tue, 1 Mar 2022 03:32:17 +0000 Subject: [PATCH] Added allow_web_debug system setting and variable filtering git-svn-id: svn://192.168.202.10@3575 3d104415-ff17-0410-8863-d5cf3c621b8a --- www/vicidial/asterisk_debug.php | 29 ++-- www/vicidial/callbacks_export.php | 83 +++++------- www/vicidial/callcard_report_export.php | 53 +++++--- .../called_counts_multilist_report.php | 79 ++++++----- www/vicidial/callerID_log_report.php | 127 ++++++++++-------- www/vicidial/campaign_debug.php | 29 ++-- www/vicidial/fcstats.php | 60 +++++---- www/vicidial/fcstats_detail.php | 112 +++++++++------ www/vicidial/lead_report_export.php | 100 +++++++++----- www/vicidial/medialog_inventory_report.php | 56 +++++--- 10 files changed, 427 insertions(+), 301 deletions(-) diff --git a/www/vicidial/asterisk_debug.php b/www/vicidial/asterisk_debug.php index ddfa0296..843c30e3 100644 --- a/www/vicidial/asterisk_debug.php +++ b/www/vicidial/asterisk_debug.php @@ -1,12 +1,13 @@ LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell LICENSE: AGPLv2 # # CHANGES # 151229-1703 - First build # 170409-1536 - Added IP List validation code # 191013-0905 - Fixes for PHP7 +# 220228-2155 - Added allow_web_debug system setting # $startMS = microtime(); @@ -31,11 +32,16 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active,enable_languages,language_method,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {echo "$stmt\n";} +#if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -46,10 +52,16 @@ if ($qm_conf_ct > 0) $user_territories_active = $row[3]; $SSenable_languages = $row[4]; $SSlanguage_method = $row[5]; + $SSallow_web_debug = $row[6]; } +if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### +$group = preg_replace('/[^-\.\:\_0-9a-zA-Z]/', '', $group); +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); + if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); @@ -57,8 +69,8 @@ if ($non_latin < 1) } else { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); } $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; @@ -205,13 +217,6 @@ if ( (strlen($slave_db_server)>5) and (preg_match("/$report_name/",$reports_use_ $MAIN.="\n"; } -$NOW_DATE = date("Y-m-d"); -$NOW_TIME = date("Y-m-d H:i:s"); -$STARTtime = date("U"); -if (!isset($group)) {$group = array();} -if (!isset($query_date)) {$query_date = $NOW_DATE;} -if (!isset($server_ip)) {$server_ip = '10.10.10.15';} - $stmt="SELECT server_id,server_ip from servers order by server_id;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} diff --git a/www/vicidial/callbacks_export.php b/www/vicidial/callbacks_export.php index 4fdd0b23..d418a1b4 100644 --- a/www/vicidial/callbacks_export.php +++ b/www/vicidial/callbacks_export.php @@ -1,10 +1,11 @@ , Joe Johnson LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell , Joe Johnson LICENSE: AGPLv2 # # CHANGES # 200622-1615 - First build +# 220228-2126 - Added allow_web_debug system setting # require("dbconnect_mysqli.php"); @@ -14,53 +15,40 @@ $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $PHP_SELF = preg_replace('/\.php.*/i','.php',$PHP_SELF); -if (isset($_GET["days"])) {$days=$_GET["days"];} - elseif (isset($_POST["days"])) {$days=$_POST["days"];} -if (isset($_GET["user"])) {$user=$_GET["user"];} - elseif (isset($_POST["user"])) {$user=$_POST["user"];} -if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} - elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} -if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} - elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} -if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} - elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} -if (isset($_GET["stage"])) {$stage=$_GET["stage"];} - elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} -if (isset($_GET["confirm_transfer"])) {$confirm_transfer=$_GET["confirm_transfer"];} - elseif (isset($_POST["confirm_transfer"])) {$confirm_transfer=$_POST["confirm_transfer"];} if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} -if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} - -if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} if (isset($_GET["cb_groups"])) {$cb_groups=$_GET["cb_groups"];} elseif (isset($_POST["cb_groups"])) {$cb_groups=$_POST["cb_groups"];} -if (isset($_GET["cb_user_groups"])) {$cb_user_groups=$_GET["cb_user_groups"];} - elseif (isset($_POST["cb_user_groups"])) {$cb_user_groups=$_POST["cb_user_groups"];} -if (isset($_GET["cb_lists"])) {$cb_lists=$_GET["cb_lists"];} - elseif (isset($_POST["cb_lists"])) {$cb_lists=$_POST["cb_lists"];} -if (isset($_GET["cb_users"])) {$cb_users=$_GET["cb_users"];} - elseif (isset($_POST["cb_users"])) {$cb_users=$_POST["cb_users"];} -if (isset($_GET["callback_time_start"])) {$callback_time_start=$_GET["callback_time_start"];} - elseif (isset($_POST["callback_time_start"])) {$callback_time_start=$_POST["callback_time_start"];} -if (isset($_GET["callback_time_end"])) {$callback_time_end=$_GET["callback_time_end"];} - elseif (isset($_POST["callback_time_end"])) {$callback_time_end=$_POST["callback_time_end"];} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$StarTtimE = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($cb_groups)) {$cb_groups=array();} +if (!isset($query_date)) {$query_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$report_name="CALLBACKS EXPORT"; + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,enable_languages,language_method,qc_features_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,enable_languages,language_method,qc_features_active,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {echo "$stmt\n";} +#if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -71,10 +59,23 @@ if ($qm_conf_ct > 0) $SSenable_languages = $row[3]; $SSlanguage_method = $row[4]; $SSqc_features_active = $row[5]; + $SSallow_web_debug = $row[6]; } +if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### +$query_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $query_date); +$end_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $end_date); +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); +$search_archived_data = preg_replace('/[^-_0-9a-zA-Z]/', '', $search_archived_data); +$file_download = preg_replace('/[^-_0-9a-zA-Z]/', '', $file_download); +$report_display_type = preg_replace('/[^-_0-9a-zA-Z]/', '', $report_display_type); + +# Variables filtered further down in the code +# $cb_groups + if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); @@ -82,23 +83,10 @@ if ($non_latin < 1) } else { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); } -$StarTtimE = date("U"); -$TODAY = date("Y-m-d"); -$NOW_TIME = date("Y-m-d H:i:s"); -if (!isset($group)) {$group=array();} -if (!isset($users)) {$users=array();} -if (!isset($query_date)) {$query_date = $TODAY;} -if (!isset($end_date)) {$end_date = $TODAY;} -$ip = getenv("REMOTE_ADDR"); -$date = date("r"); -$ip = getenv("REMOTE_ADDR"); -$browser = getenv("HTTP_USER_AGENT"); -$report_name="CALLBACKS EXPORT"; - $stmt="SELECT selected_language,qc_enabled from vicidial_users where user='$PHP_AUTH_USER';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); @@ -214,7 +202,6 @@ $NWE = "')\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP>"; if ($SUBMIT) { - ##### BEGIN log visit to the vicidial_report_log table ##### $LOGip = getenv("REMOTE_ADDR"); $LOGbrowser = getenv("HTTP_USER_AGENT"); @@ -298,6 +285,10 @@ if ($SUBMIT) if (count($cb_groups)>0 && $query_date) { + for ($i=0; $i LICENSE: AGPLv2 +# Copyright (C) 2022 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -17,6 +17,7 @@ # 141230-1348 - Added code for on-the-fly language translations display # 170409-1534 - Added IP List validation code # 170829-0040 - Added screen color settings +# 220228-2119 - Added allow_web_debug system setting # require("dbconnect_mysqli.php"); @@ -51,14 +52,24 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} -if (strlen($shift)<2) {$shift='ALL';} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} +if (strlen($shift)<2) {$shift='ALL';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_languages,language_method,allow_web_debug FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); -if ($DB) {echo "$stmt\n";} +#if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { @@ -66,10 +77,24 @@ if ($qm_conf_ct > 0) $non_latin = $row[0]; $SSenable_languages = $row[1]; $SSlanguage_method = $row[2]; + $SSallow_web_debug = $row[3]; } +if ($SSallow_web_debug < 1) {$DB=0;} ##### END SETTINGS LOOKUP ##### ########################################### +$query_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $query_date); +$end_date = preg_replace('/[^- \:\_0-9a-zA-Z]/', '', $end_date); +$submit = preg_replace('/[^-_0-9a-zA-Z]/', '', $submit); +$SUBMIT = preg_replace('/[^-_0-9a-zA-Z]/', '', $SUBMIT); +$run = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$run); +$batch = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$batch); +$pack = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$pack); +$agent = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$agent); +$did = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$did); +$callerid = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$callerid); +$run_export = preg_replace("/\<|\>|\'|\"|\\\\|;/","",$run_export); + if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); @@ -77,8 +102,8 @@ if ($non_latin < 1) } else { - $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); - $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_USER = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9\p{L}]/u', '', $PHP_AUTH_PW); } $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; @@ -165,16 +190,6 @@ if ($LOGcallcard_admin < 1) ##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### if ($run_export > 0) { - $US='_'; - $MT[0]=''; - $ip = getenv("REMOTE_ADDR"); - $NOW_DATE = date("Y-m-d"); - $NOW_TIME = date("Y-m-d H:i:s"); - $FILE_TIME = date("Ymd-His"); - $STARTtime = date("U"); - if (!isset($query_date)) {$query_date = $NOW_DATE;} - if (!isset($end_date)) {$end_date = $NOW_DATE;} - $inbound_to_print=0; $export_rows=''; $k=0; @@ -267,12 +282,6 @@ if ($run_export > 0) else { - $NOW_DATE = date("Y-m-d"); - $NOW_TIME = date("Y-m-d H:i:s"); - $STARTtime = date("U"); - if (!isset($query_date)) {$query_date = $NOW_DATE;} - if (!isset($end_date)) {$end_date = $NOW_DATE;} - echo "\n"; echo "\n"; diff --git a/www/vicidial/called_counts_multilist_report.php b/www/vicidial/called_counts_multilist_report.php index e8ab9fe1..1e513f80 100644 --- a/www/vicidial/called_counts_multilist_report.php +++ b/www/vicidial/called_counts_multilist_report.php @@ -1,7 +1,7 @@ , Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2022 Joe Johnson , Matt Florell LICENSE: AGPLv2 # # This is a report designed for showing called counts similar to the results # at the bottom of each list detail screen, but for multiple lists and using @@ -19,6 +19,7 @@ # 170829-0040 - Added screen color settings # 180508-0115 - Added new help display # 191013-0840 - Fixes for PHP7 +# 220228-2108 - Added allow_web_debug system setting # $startMS = microtime(); @@ -35,9 +36,9 @@ $PHP_SELF=$_SERVER['PHP_SELF']; $PHP_SELF = preg_replace('/\.php.*/i','.php',$PHP_SELF); if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} -if (isset($_GET["override_date"])) {$override_date=$_GET["override_date"];} +if (isset($_GET["override_date"])) {$override_date=$_GET["override_date"];} elseif (isset($_POST["override_date"])) {$override_date=$_POST["override_date"];} -if (isset($_GET["group"])) {$group=$_GET["group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} @@ -49,21 +50,27 @@ if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} -if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} -if (isset($_GET["report_display_type"])) {$report_display_type=$_GET["report_display_type"];} +if (isset($_GET["report_display_type"])) {$report_display_type=$_GET["report_display_type"];} elseif (isset($_POST["report_display_type"])) {$report_display_type=$_POST["report_display_type"];} if (isset($_GET["search_archived_data"])) {$search_archived_data=$_GET["search_archived_data"];} elseif (isset($_POST["search_archived_data"])) {$search_archived_data=$_POST["search_archived_data"];} -if (strlen($shift)<2) {$shift='ALL';} -if (strlen($bottom_graph)<2) {$bottom_graph='NO';} -if (strlen($carrier_stats)<2) {$carrier_stats='NO';} -if (strlen($include_rollover)<2) {$include_rollover='NO';} $DB=preg_replace("/[^0-9a-zA-Z]/","",$DB); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = array();} +if (!isset($list_ids)) {$list_ids = array();} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + $report_name = 'Called Counts List IDs Report'; $db_source = 'M'; $JS_text="