From 58171cf8ca51bbf0194fe9f6b0f9071a1624e38e Mon Sep 17 00:00:00 2001 From: tbradsha <32492176+tbradsha@users.noreply.github.com> Date: Mon, 4 May 2026 13:17:59 -0600 Subject: [PATCH 01/10] Escape CRM strings --- .../plugins/crm/admin/company/view.page.php | 7 ++--- .../plugins/crm/admin/contact/view.page.php | 6 ++-- .../plugins/crm/includes/ZeroBSCRM.Delete.php | 20 ++++++------- .../plugins/crm/includes/ZeroBSCRM.Edit.php | 28 +++++++++---------- .../ZeroBSCRM.MetaBoxes3.Companies.php | 10 +++---- .../ZeroBSCRM.MetaBoxes3.Invoices.php | 20 ++++++------- .../includes/ZeroBSCRM.MetaBoxes3.Quotes.php | 12 ++++---- .../crm/includes/ZeroBSCRM.TagManager.php | 19 ++++++------- .../plugins/crm/js/ZeroBSCRM.admin.email.js | 1 - .../crm/js/ZeroBSCRM.admin.tags.metabox.js | 1 - 10 files changed, 60 insertions(+), 64 deletions(-) diff --git a/projects/plugins/crm/admin/company/view.page.php b/projects/plugins/crm/admin/company/view.page.php index e42a9e378dd9..a50acea3ba95 100644 --- a/projects/plugins/crm/admin/company/view.page.php +++ b/projects/plugins/crm/admin/company/view.page.php @@ -939,14 +939,13 @@ function jpcrm_render_company_view_page( $id = -1 ) { diff --git a/projects/plugins/crm/admin/contact/view.page.php b/projects/plugins/crm/admin/contact/view.page.php index 16a1ea5069fc..e34ef67d6d53 100644 --- a/projects/plugins/crm/admin/contact/view.page.php +++ b/projects/plugins/crm/admin/contact/view.page.php @@ -1365,14 +1365,14 @@ function jpcrm_render_contact_view_page( $id = -1 ) { objID ); ?>, - objdbname: 'objType ); ?>', - nonce: 'objType ) ); ?>' + objid: objID; ?>, + objdbname: objType, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>, + nonce: objType ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?> }; var zbsDrawEditViewBlocker = false; var zbsDrawEditAJAXBlocker = false; - var zbsObjectViewLinkPrefixCustomer = ''; - var zbsObjectEditLinkPrefixCustomer = ''; - var zbsObjectViewLinkPrefixCompany = ''; - var zbsListViewLink = 'listViewSlug ); ?>'; + var zbsObjectViewLinkPrefixCustomer = ; + var zbsObjectEditLinkPrefixCustomer = ; + var zbsObjectViewLinkPrefixCompany = ; + var zbsListViewLink = listViewSlug ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>; - var zbsClick2CallType = parseInt(''); + var zbsClick2CallType = ; var zbsEditViewLangLabels = { - 'today': '', - 'view': '', - 'contact': '', - 'company': '', + 'today': , + 'view': , + 'contact': , + 'company': , - + ', - 'unabletodelete': '' + 'error': , + 'unabletodelete': }; jQuery(function(){ @@ -767,9 +767,9 @@ public function html( $company, $metabox ) { // postbag! var data = { 'action': 'delFile', - 'zbsfType': 'objType ); ?>', + 'zbsfType': objType, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>, 'zbsDel': delUrl, // could be csv, never used though - 'zbsCID': , + 'zbsCID': , 'sec': window.zbscrmjs_secToken }; diff --git a/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Invoices.php b/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Invoices.php index 81fdb3608c5b..753f2541a78d 100644 --- a/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Invoices.php +++ b/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Invoices.php @@ -112,7 +112,7 @@ public function html( $invoice, $metabox ) { } ?> - + 0 ) { - echo 'var zbsJS_prefillobjtype = ' . esc_js( $prefill_obj ) . ';'; + echo 'var zbsJS_prefillobjtype = ' . (int) $prefill_obj . ';'; } if ( $prefill_id > 0 ) { - echo 'var zbsJS_prefillid = ' . esc_js( $prefill_id ) . ';'; + echo 'var zbsJS_prefillid = ' . (int) $prefill_id . ';'; } - echo 'var zbsJS_prefillemail = \'' . esc_js( $prefill_email ) . '\';'; - echo 'var zbsJS_prefillname = \'' . esc_js( $prefill_name ) . '\';'; + echo 'var zbsJS_prefillemail = ' . wp_json_encode( $prefill_email, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ) . ';'; + echo 'var zbsJS_prefillname = ' . wp_json_encode( $prefill_name, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ) . ';'; // only sendemail if have active template :) echo 'var zbsJS_invEmailActive = ' . ( zeroBSCRM_get_email_status( ZBSEMAIL_EMAILINVOICE ) == 1 ? '1' : '-1' ) . ';'; @@ -537,10 +537,10 @@ public function html( $invoice, $metabox ) { var zbsInvoicesCurrentlyDeleting = false; var zbsMetaboxFilesLang = { - 'err': '', - 'unabletodel' : '', - 'viewcontact' : '', - 'viewcompany' : '', + 'err': , + 'unabletodel' : , + 'viewcontact' : , + 'viewcompany' : , } jQuery(function(){ @@ -564,7 +564,7 @@ public function html( $invoice, $metabox ) { 'action': 'delFile', 'zbsfType': 'invoices', 'zbsDel': delUrl, // could be csv, never used though - 'zbsCID': , + 'zbsCID': , 'sec': window.zbscrmjs_secToken }; diff --git a/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Quotes.php b/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Quotes.php index 800bcddffa24..cc9e92545395 100644 --- a/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Quotes.php +++ b/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Quotes.php @@ -122,7 +122,7 @@ public function html( $quote, $metabox ) { // Debug echo 'Quote:
'.print_r($quote,1).''; ?> - + ' + contactID + '"> '; + var navButton = ' ' + + ''; jQuery('#zbs-quote-learn-nav').append(navButton); // bind @@ -831,7 +831,7 @@ public function html( $quote, $metabox ) {