From aba4ca6e9080ea731fc7e16f62d80b1c6f25123c Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 14 Mar 2023 20:05:53 +0500 Subject: [PATCH 01/28] Version: 2.105.1-fix --- security-malware-firewall.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security-malware-firewall.php b/security-malware-firewall.php index 6b7e78fe3..727f10b69 100644 --- a/security-malware-firewall.php +++ b/security-malware-firewall.php @@ -5,7 +5,7 @@ Plugin URI: https://wordpress.org/plugins/security-malware-firewall/ Description: Security & Malware scan by CleanTalk to protect your website from online threats and viruses. IP/Country FireWall, Web application FireWall. Detailed stats and logs to have full control. Author: CleanTalk Security -Version: 2.105 +Version: 2.105.1-fix Author URI: https://cleantalk.org Text Domain: security-malware-firewall Domain Path: /i18n From c63fcef5d999e70ba0fe6bc7f3ee72bd55d4a6f0 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 14 Mar 2023 20:11:59 +0500 Subject: [PATCH 02/28] Version: 2.105.1-dev --- security-malware-firewall.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security-malware-firewall.php b/security-malware-firewall.php index 6b7e78fe3..a0af23f06 100644 --- a/security-malware-firewall.php +++ b/security-malware-firewall.php @@ -5,7 +5,7 @@ Plugin URI: https://wordpress.org/plugins/security-malware-firewall/ Description: Security & Malware scan by CleanTalk to protect your website from online threats and viruses. IP/Country FireWall, Web application FireWall. Detailed stats and logs to have full control. Author: CleanTalk Security -Version: 2.105 +Version: 2.105.1-dev Author URI: https://cleantalk.org Text Domain: security-malware-firewall Domain Path: /i18n From 39bdcce314d25c56539431c17cfb2a475e258b09 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 14 Mar 2023 20:30:14 +0500 Subject: [PATCH 03/28] Version: 2.105.1-dev. Stable tag added. --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 2bd875b44..29aa92e90 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: security, firewall, malware, wordpress security, brute force Requires at least: 3.0 Tested up to: 6.1 Requires PHP: 5.6 -Stable tag: 2.104 +Stable tag: 2.105 License: GPLv2 License URI: https://www.gnu.org/licenses/gpl-2.0.html From 34c2b4a5dec4c8cdaf0ff0712b342110c2edb3a6 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 14 Mar 2023 20:34:17 +0500 Subject: [PATCH 04/28] Version: 2.105.1-fix. Stable tag added. --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 2bd875b44..29aa92e90 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: security, firewall, malware, wordpress security, brute force Requires at least: 3.0 Tested up to: 6.1 Requires PHP: 5.6 -Stable tag: 2.104 +Stable tag: 2.105 License: GPLv2 License URI: https://www.gnu.org/licenses/gpl-2.0.html From 1a0b739252f85d0a8ea17a36bc7c9e040438203e Mon Sep 17 00:00:00 2001 From: Glomberg Date: Mon, 20 Mar 2023 19:51:52 +0300 Subject: [PATCH 05/28] Fix. Heuristic. Unsetting verdict removed. --- lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php b/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php index d29d30e23..8f1525b1f 100644 --- a/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php +++ b/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php @@ -348,11 +348,6 @@ public function processContent() /** Merge verdicts */ $this->verdict = array_merge_recursive($this->verdict, $sub->verdict); - - // Delete safe evaluations t reduce false positives - if ( $sub->looks_safe ) { - unset($this->verdict['CRITICAL'][$evaluation_string]); - } } $this->cleanUpVerdict(); From e90116bad0ef0638b251c2a5cde43e2a3d71e7c5 Mon Sep 17 00:00:00 2001 From: svfcode Date: Tue, 21 Mar 2023 10:21:44 +0400 Subject: [PATCH 06/28] Update. Traffic control. Add time options. --- inc/spbc-settings.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/inc/spbc-settings.php b/inc/spbc-settings.php index bebcf1921..5cbdfa0a3 100644 --- a/inc/spbc-settings.php +++ b/inc/spbc-settings.php @@ -483,10 +483,12 @@ function spbc_settings__register() 'input_type' => 'select', 'options' => array( array('val' => 60, 'label' => __('1 minute', 'security-malware-firewall'),), - array('val' => 180, 'label' => __('3 minutes', 'security-malware-firewall'),), array('val' => 300, 'label' => __('5 minutes', 'security-malware-firewall'),), - array('val' => 600, 'label' => __('10 minutes', 'security-malware-firewall'),), array('val' => 900, 'label' => __('15 minutes', 'security-malware-firewall'),), + array('val' => 3600, 'label' => __('1 hour', 'security-malware-firewall'),), + array('val' => 43200, 'label' => __('12 hours', 'security-malware-firewall'),), + array('val' => 86400, 'label' => __('24 hours', 'security-malware-firewall'),), + array('val' => 259200, 'label' => __('3 days', 'security-malware-firewall'),), ), 'title' => __('Block a visitor if they exceeded the limit of opened pages for', 'security-malware-firewall'), 'parent' => 'traffic_control__enabled', From 2da927e16282dc263ecf01572e45a67c41d454ca Mon Sep 17 00:00:00 2001 From: svfcode Date: Tue, 21 Mar 2023 10:37:07 +0400 Subject: [PATCH 07/28] Fix. Psalm. Add PossiblyUnusedProperty. --- lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php b/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php index d29d30e23..60ae6b5c1 100644 --- a/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php +++ b/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php @@ -65,6 +65,7 @@ class Controller ); public $verdict = array(); // Scan results + /** @psalm-suppress PossiblyUnusedProperty */ public $looks_safe = false; private $bad_constructs = array( From 0422a34b894c682182d86c1cb75475149e287677 Mon Sep 17 00:00:00 2001 From: Glomberg Date: Tue, 21 Mar 2023 10:24:00 +0300 Subject: [PATCH 08/28] Fix. HTTP lib. WP 6.2+ supporting implemented. --- lib/CleantalkSP/SpbctWP/HTTP/Request.php | 50 ++++++++++++++++++++---- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/lib/CleantalkSP/SpbctWP/HTTP/Request.php b/lib/CleantalkSP/SpbctWP/HTTP/Request.php index a33d41a6e..56d442e38 100644 --- a/lib/CleantalkSP/SpbctWP/HTTP/Request.php +++ b/lib/CleantalkSP/SpbctWP/HTTP/Request.php @@ -4,7 +4,6 @@ use CleantalkSP\Common\Helpers\HTTP; use CleantalkSP\Common\HTTP\Response; -use Requests; class Request extends \CleantalkSP\Common\HTTP\Request { @@ -35,6 +34,12 @@ public function request() return parent::request(); } + /** + * @inheritDoc + * + * @psalm-suppress UndefinedDocblockClass + * @psalm-suppress UndefinedClass + */ protected function requestSingle() { global $spbc; @@ -45,19 +50,32 @@ protected function requestSingle() $type = in_array('get', $this->presets, true) ? 'GET' : 'POST'; + // WP 6.2 support: Requests/Response classes has been replaced into the another namespace in the core + if ( class_exists('\WpOrg\Requests\Requests') ) { + /** @var \WpOrg\Requests\Requests $requests_class */ + $requests_class = '\WpOrg\Requests\Requests'; + /** @var \WpOrg\Requests\Response $response_class */ + $response_class = '\WpOrg\Requests\Response'; + } else { + /** @var \Requests $requests_class */ + $requests_class = '\Requests'; + /** @var \Requests_Response $response_class */ + $response_class = '\Requests_Response'; + } + try { - $response = Requests::request( + $response = $requests_class::request( $this->url, $this->options[CURLOPT_HTTPHEADER], $this->data, $type, $this->options ); - } catch ( \Requests_Exception $e ) { + } catch ( \Exception $e ) { return new Response(['error' => $e->getMessage()], []); } - if ( $response instanceof \Requests_Response ) { + if ( $response instanceof $response_class ) { return new Response($response->body, ['http_code' => $response->status_code]); } @@ -66,9 +84,12 @@ protected function requestSingle() } /** - * @return array|Response|Response[] + * @inheritDoc + * * @psalm-suppress InvalidReturnType * @psalm-suppress InvalidReturnStatement + * @psalm-suppress UndefinedDocblockClass + * @psalm-suppress UndefinedClass */ protected function requestMulti() { @@ -96,14 +117,27 @@ protected function requestMulti() ]; } - $responses_raw = \Requests::request_multiple($requests, $options); + // WP 6.2 support: Requests/Response classes has been replaced into the another namespace in the core + if ( class_exists('\WpOrg\Requests\Requests') ) { + /** @var \WpOrg\Requests\Requests $requests_class */ + $requests_class = '\WpOrg\Requests\Requests'; + /** @var \WpOrg\Requests\Response $response_class */ + $response_class = '\WpOrg\Requests\Response'; + } else { + /** @var \Requests $requests_class */ + $requests_class = '\Requests'; + /** @var \Requests_Response $response_class */ + $response_class = '\Requests_Response'; + } + + $responses_raw = $requests_class::request_multiple($requests, $options); foreach ( $responses_raw as $response ) { - if ( $response instanceof \Requests_Exception ) { + if ( $response instanceof \Exception ) { $responses[$this->url] = new Response(['error' => $response->getMessage()], []); continue; } - if ( $response instanceof \Requests_Response ) { + if ( $response instanceof $response_class ) { $responses[$response->url] = new Response($response->body, ['http_code' => $response->status_code]); continue; } From aafc96475805223642231b0c42200e3831901a82 Mon Sep 17 00:00:00 2001 From: Glomberg Date: Tue, 21 Mar 2023 10:24:17 +0300 Subject: [PATCH 09/28] Fix. Code. Psalm notice fixed. --- lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php b/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php index 8f1525b1f..86ba86d65 100644 --- a/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php +++ b/lib/CleantalkSP/SpbctWP/Scanner/Heuristic/Controller.php @@ -65,6 +65,11 @@ class Controller ); public $verdict = array(); // Scan results + + /** + * @var bool + * @psalm-suppress UnusedProperty + */ public $looks_safe = false; private $bad_constructs = array( From 420b3eeb9c61cc1bbe9f8a8afff2934e21a74c88 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Fri, 17 Mar 2023 16:34:07 +0500 Subject: [PATCH 10/28] Fix. Do not show suspicious files if they are not sent for analysis. --- inc/spbc-settings.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/spbc-settings.php b/inc/spbc-settings.php index bebcf1921..9e7bf94e8 100644 --- a/inc/spbc-settings.php +++ b/inc/spbc-settings.php @@ -3133,6 +3133,7 @@ function spbc_list_table__get_args_by_type($table_type) ), 'sql' => array( 'where' => ' WHERE severity <> "CRITICAL" AND + pscan_processing_status IS NULL AND (STATUS = "MODIFIED" OR severity IS NOT NULL)', ), 'order_by' => array('path' => 'asc'), From 8b4d8b852a86444fe0c7a4e64cf230636c8417ad Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 21 Mar 2023 14:31:52 +0500 Subject: [PATCH 11/28] Fix. Do not skip files analysis if aggregated size overlimited. --- lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php b/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php index 05e986394..57236cf66 100644 --- a/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php +++ b/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php @@ -1136,6 +1136,7 @@ public function signature_analysis($status = 'UNKNOWN,MODIFIED,OK,INFECTED', $of $aggregated_size = 0; $files_to_check = array(); + $size_breaking_flag = false; foreach ( $files as $file ) { if ( $aggregated_size < 524288 * 4 ) { $aggregated_size += $file['size']; @@ -1204,7 +1205,7 @@ public function signature_analysis($status = 'UNKNOWN,MODIFIED,OK,INFECTED', $of $out = array( 'found' => count($files_to_check), 'processed' => (int)$scanned, - 'end' => (int)$scanned < $amount, + 'end' => (int)$scanned < $amount && !$size_breaking_flag, ); $stage_data_obj->increase('count_files_to_check', count($files_to_check)); @@ -1282,11 +1283,13 @@ public function heuristic_analysis($status = 'UNKNOWN,MODIFIED,OK,INFECTED', $of $aggregated_size = 0; $files_to_check = array(); + $size_breaking_flag = false; foreach ( $files as $file ) { if ( $aggregated_size < 524288 * 1 ) { $aggregated_size += $file['size']; $files_to_check[] = $file; } else { + $size_breaking_flag = true; break; } } @@ -1386,7 +1389,7 @@ public function heuristic_analysis($status = 'UNKNOWN,MODIFIED,OK,INFECTED', $of $out = array( 'found' => count($files_to_check), 'processed' => (int)$scanned, - 'end' => (int)$scanned < $amount, + 'end' => (int)$scanned < $amount && !$size_breaking_flag, ); // Adding data for user log From 4048ac6ad889d1dd926552538aa8d88cc97febe3 Mon Sep 17 00:00:00 2001 From: svfcode Date: Tue, 21 Mar 2023 17:58:09 +0400 Subject: [PATCH 12/28] Fix. Scan. Exception for file with two lines. --- js/spbc-settings_tab--scanner.min.js | 2 +- js/spbc-settings_tab--scanner.min.js.map | 2 +- js/src/spbc-settings_tab--scanner.js | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/js/spbc-settings_tab--scanner.min.js b/js/spbc-settings_tab--scanner.min.js index 1c096c3c7..f0ff6386b 100644 --- a/js/spbc-settings_tab--scanner.min.js +++ b/js/spbc-settings_tab--scanner.min.js @@ -1,2 +1,2 @@ -function spbc_popup_tip___show(e){function s(e){void 0!==e&&(0!=jQuery(e.target).parent(".spbc_popup_tip--wrapper").length&&!jQuery(e.target).hasClass("spbc_popup_tip--icon---cancel")||jQuery(e.target).hasClass("spbc_popup_tip--icon---show"))||(jQuery(".spbc_popup_tip--wrapper").hide(),jQuery(document).off("click",s))}var n=e.attr("spbc_tip_title")||null,o=e.attr("spbc_tip_text")||null,t=(s(),e.after("
"),jQuery(".spbc_popup_tip--wrapper"));t.empty().append("
").css({top:e.position().top-2,left:e.position().left+25}),t.append("").append("

"+n+"

").append("

"+o+"

"),jQuery(document).on("click",s),e.parents("tr").on("mouseout",s)}function spbc_scanner_button_file_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_view",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_analysis_log_delete_from_log(e){var e=jQuery(e),s={action:"spbc_scanner_analysis_log_delete_from_log",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:window.location.reload(),errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_page_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_page_view",page_url:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}},n=jQuery("#wpwrap"),o=jQuery("#spbc_dialog"),t=(o.dialog({modal:!0,title:"Loading..",position:{my:"center top",at:"center top+100px",of:window},width:n.width()/100*90,show:{effect:"blind",duration:500},draggable:!1,resizable:!1,closeText:"X",classes:{"ui-dialog":"spbc---top"},open:function(e,s){e.target.style.overflow="auto",jQuery("#spbc_dialog").height(document.documentElement.clientHeight/100*25)},beforeClose:function(e,s){document.body.style.overflow="auto",jQuery("#spbc_dialog").empty()}}),o.append('Wait for downloading'),jQuery("#spbc_file_view_preloader")),n=4e-4*n.width();t.height(128*n),t.width(128*n),t.css({left:o.width()/2-128*n/2}),t.css({top:o.height()/2-128*n/2}),spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonView_callback(e){var s,n=jQuery("#spbc_dialog");jQuery("#spbc_file_view_preloader").css({display:"none"}),n.dialog({title:"Loaded: "+e.file_path});for(s in e.file)n.append('
%s

%s


'.printf(s,e.file[s]));var o=19*Object.keys(e.file).length<76?76:19*Object.keys(e.file).length,t=document.documentElement.clientHeight/100*75,a=o%s

%s


':a).printf(e,s.file[e]));jQuery("#spbc_dialog").append(a.printf("",""))}jQuery("#spbc_dialog div").last().remove();let p=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,i=document.documentElement.clientHeight/100*75,l=p{};if(1==o.success){console.log(o);var t,a='
%s

%s


',c=[];for(t in o.weak_spots=JSON.parse(o.weak_spots),o.weak_spots)c=c.concat(Object.keys(o.weak_spots[t]));var r,c=[...new Set(c)].sort(),p=new Map(Object.entries(o.weak_spots.CRITICAL));for(r in c){var i=+c[r];for(let n=i-2;n<=2+i;n++)if(void 0!==o.file[n]){var l=i===n;let e,s;e=l?'
%s

%s


':a,s=l?e.printf(n,p.get(c[r])):e.printf(n,o.file[n]),jQuery("#spbc_dialog").append(s)}jQuery("#spbc_dialog").append(a.printf("","")),jQuery("#spbc_dialog div").last().remove()}}else jQuery("#spbc_dialog").append('
%s
'.printf(o.content)),n=()=>{document.location.reload()};let _=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,u=document.documentElement.clientHeight/100*75,d=_{window.location.reload()},errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_file_compare_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_compare",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonFileCompare_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonFileCompare_callback(s,e,n){console.log("FILE_COMPARED");var o='

%s

%s

%s


';jQuery("#spbc_dialog").append(o.printf('Modified',"Line",'Original'));for(var t=1;void 0!==s.file[t]||void 0!==s.file_original[t];t++)if(void 0===s.file[t]&&(s.file[t]=""),void 0===s.file_original[t]&&(s.file_original[t]=""),-1!=s.difference.indexOf(t)){for(let e=t-2;e<=t+2;e++)void 0!==s.file[e]&&void 0!==s.file_original[t]&&jQuery("#spbc_dialog").append((t===e?'

%s

%s

%s


':o).printf(s.file[e]||"",e,s.file_original[e]||""));jQuery("#spbc_dialog").append(o.printf("","",""))}var a=19*jQuery("#spbc_dialog div").length+19,c=document.documentElement.clientHeight/100*75,r=a{document.getElementById("spbc_scanner__last_scan_info").innerText=e.data}})}jQuery(document).ready(function(){spbc_tbl__bulk_actions__listen(),spbc_tbl__row_actions__listen(),spbc_tbl__pagination__listen(),spbc_tbl__sort__listen(),spbcStartShowHide(),jQuery("#spbc_scaner_progress_bar").progressbar({value:0,create:function(e,s){e.target.style.position="relative",e.target.style.marginBottom="12px"},change:function(e,s){jQuery(".spbc_progressbar_counter span").text(jQuery(e.target).progressbar("option","value")+" %")}}),jQuery("#spbc_scan_accordion").accordion({header:"h3",heightStyle:"content",collapsible:!0,active:!1,activate:function(e,s){0===s.oldPanel.length&&0===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom spbc-overflow--visible")},beforeActivate:function(e,s){1===s.oldPanel.length&&1===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom")}}),window.spbc_scanner=new spbcMalwareScanner({settings:spbcScaner.settings,states:spbcScaner.states,button:jQuery("#spbc_perform_scan"),spinner:jQuery("#spbc_perform_scan").next(),callback:null,progress_overall:jQuery("#spbc_scaner_progress_overall"),progressbar:jQuery("#spbc_scaner_progress_bar"),progressbar_text:jQuery(".spbc_progressbar_counter span"),wrapper:document.getElementsByClassName("spbc_unchecked_file_list"),warnings:{long_scan:jQuery(".spbc_hint_warning__long_scan"),outdated:jQuery(".spbc_hint_warning__outdated")}}),jQuery(document).on("click",".spbc_popup_tip--icon---show",function(){spbc_popup_tip___show(jQuery(this))}),jQuery("#spbc_perform_scan").on("click",function(){jQuery("#spbcscan-results-log-module").remove(),spbc_scanner.actionControl(),jQuery(".spbc_log-wrapper .panel-body").length||jQuery(".spbc_log-wrapper").append('
'),jQuery(".spbc_log-wrapper").resizable({handles:"n, s",containment:"document"})}),jQuery("#spbcscan-results-log-module").resizable({handles:"n, s",containment:"document"}),jQuery("#spbc_scanner_clear").on("click",function(){confirm("Do you wanna clear the table with file scan results?")&&(console.log("CLEAR"),spbc_sendAJAXRequest({action:"spbc_scanner_clear"},{type:"GET",successCallback:function(){document.location=document.location},complete:null,errorOutput:null,context:this,timeout:4e4}))}),jQuery("#spbc_scanner_save_to_pdf").on("click",function(){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_save_to_pdf",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"blob"},success:function(o){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_get_pdf_file_name",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"text"},success:function(e){var s=new Blob([o]),n=document.createElement("a");n.href=window.URL.createObjectURL(s),n.download=e.data,n.click()}})}})})}); +function spbc_popup_tip___show(e){function s(e){void 0!==e&&(0!=jQuery(e.target).parent(".spbc_popup_tip--wrapper").length&&!jQuery(e.target).hasClass("spbc_popup_tip--icon---cancel")||jQuery(e.target).hasClass("spbc_popup_tip--icon---show"))||(jQuery(".spbc_popup_tip--wrapper").hide(),jQuery(document).off("click",s))}var n=e.attr("spbc_tip_title")||null,o=e.attr("spbc_tip_text")||null,t=(s(),e.after("
"),jQuery(".spbc_popup_tip--wrapper"));t.empty().append("
").css({top:e.position().top-2,left:e.position().left+25}),t.append("").append("

"+n+"

").append("

"+o+"

"),jQuery(document).on("click",s),e.parents("tr").on("mouseout",s)}function spbc_scanner_button_file_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_view",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_analysis_log_delete_from_log(e){var e=jQuery(e),s={action:"spbc_scanner_analysis_log_delete_from_log",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:window.location.reload(),errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_page_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_page_view",page_url:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}},n=jQuery("#wpwrap"),o=jQuery("#spbc_dialog"),t=(o.dialog({modal:!0,title:"Loading..",position:{my:"center top",at:"center top+100px",of:window},width:n.width()/100*90,show:{effect:"blind",duration:500},draggable:!1,resizable:!1,closeText:"X",classes:{"ui-dialog":"spbc---top"},open:function(e,s){e.target.style.overflow="auto",jQuery("#spbc_dialog").height(document.documentElement.clientHeight/100*25)},beforeClose:function(e,s){document.body.style.overflow="auto",jQuery("#spbc_dialog").empty()}}),o.append('Wait for downloading'),jQuery("#spbc_file_view_preloader")),n=4e-4*n.width();t.height(128*n),t.width(128*n),t.css({left:o.width()/2-128*n/2}),t.css({top:o.height()/2-128*n/2}),spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonView_callback(e){var s,n=jQuery("#spbc_dialog");jQuery("#spbc_file_view_preloader").css({display:"none"}),n.dialog({title:"Loaded: "+e.file_path});for(s in e.file)n.append('
%s

%s


'.printf(s,e.file[s]));var o=19*Object.keys(e.file).length<76?76:19*Object.keys(e.file).length,t=document.documentElement.clientHeight/100*75,a=o%s

%s


':a).printf(e,s.file[e]));jQuery("#spbc_dialog").append(a.printf("","")),c=[1,2];break}jQuery("#spbc_dialog div").last().remove();let p=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,i=document.documentElement.clientHeight/100*75,l=p{};if(1==o.success){console.log(o);var t,a='
%s

%s


',c=[];for(t in o.weak_spots=JSON.parse(o.weak_spots),o.weak_spots)c=c.concat(Object.keys(o.weak_spots[t]));var r,c=[...new Set(c)].sort(),p=new Map(Object.entries(o.weak_spots.CRITICAL));for(r in c){var i=+c[r];for(let n=i-2;n<=2+i;n++)if(void 0!==o.file[n]){var l=i===n;let e,s;e=l?'
%s

%s


':a,s=l?e.printf(n,p.get(c[r])):e.printf(n,o.file[n]),jQuery("#spbc_dialog").append(s)}jQuery("#spbc_dialog").append(a.printf("","")),jQuery("#spbc_dialog div").last().remove()}}else jQuery("#spbc_dialog").append('
%s
'.printf(o.content)),n=()=>{document.location.reload()};let _=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,u=document.documentElement.clientHeight/100*75,b=_{window.location.reload()},errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_file_compare_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_compare",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonFileCompare_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonFileCompare_callback(s,e,n){console.log("FILE_COMPARED");var o='

%s

%s

%s


';jQuery("#spbc_dialog").append(o.printf('Modified',"Line",'Original'));for(var t=1;void 0!==s.file[t]||void 0!==s.file_original[t];t++)if(void 0===s.file[t]&&(s.file[t]=""),void 0===s.file_original[t]&&(s.file_original[t]=""),-1!=s.difference.indexOf(t)){for(let e=t-2;e<=t+2;e++)void 0!==s.file[e]&&void 0!==s.file_original[t]&&jQuery("#spbc_dialog").append((t===e?'

%s

%s

%s


':o).printf(s.file[e]||"",e,s.file_original[e]||""));jQuery("#spbc_dialog").append(o.printf("","",""))}var a=19*jQuery("#spbc_dialog div").length+19,c=document.documentElement.clientHeight/100*75,r=a{document.getElementById("spbc_scanner__last_scan_info").innerText=e.data}})}jQuery(document).ready(function(){spbc_tbl__bulk_actions__listen(),spbc_tbl__row_actions__listen(),spbc_tbl__pagination__listen(),spbc_tbl__sort__listen(),spbcStartShowHide(),jQuery("#spbc_scaner_progress_bar").progressbar({value:0,create:function(e,s){e.target.style.position="relative",e.target.style.marginBottom="12px"},change:function(e,s){jQuery(".spbc_progressbar_counter span").text(jQuery(e.target).progressbar("option","value")+" %")}}),jQuery("#spbc_scan_accordion").accordion({header:"h3",heightStyle:"content",collapsible:!0,active:!1,activate:function(e,s){0===s.oldPanel.length&&0===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom spbc-overflow--visible")},beforeActivate:function(e,s){1===s.oldPanel.length&&1===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom")}}),window.spbc_scanner=new spbcMalwareScanner({settings:spbcScaner.settings,states:spbcScaner.states,button:jQuery("#spbc_perform_scan"),spinner:jQuery("#spbc_perform_scan").next(),callback:null,progress_overall:jQuery("#spbc_scaner_progress_overall"),progressbar:jQuery("#spbc_scaner_progress_bar"),progressbar_text:jQuery(".spbc_progressbar_counter span"),wrapper:document.getElementsByClassName("spbc_unchecked_file_list"),warnings:{long_scan:jQuery(".spbc_hint_warning__long_scan"),outdated:jQuery(".spbc_hint_warning__outdated")}}),jQuery(document).on("click",".spbc_popup_tip--icon---show",function(){spbc_popup_tip___show(jQuery(this))}),jQuery("#spbc_perform_scan").on("click",function(){jQuery("#spbcscan-results-log-module").remove(),spbc_scanner.actionControl(),jQuery(".spbc_log-wrapper .panel-body").length||jQuery(".spbc_log-wrapper").append('
'),jQuery(".spbc_log-wrapper").resizable({handles:"n, s",containment:"document"})}),jQuery("#spbcscan-results-log-module").resizable({handles:"n, s",containment:"document"}),jQuery("#spbc_scanner_clear").on("click",function(){confirm("Do you wanna clear the table with file scan results?")&&(console.log("CLEAR"),spbc_sendAJAXRequest({action:"spbc_scanner_clear"},{type:"GET",successCallback:function(){document.location=document.location},complete:null,errorOutput:null,context:this,timeout:4e4}))}),jQuery("#spbc_scanner_save_to_pdf").on("click",function(){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_save_to_pdf",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"blob"},success:function(o){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_get_pdf_file_name",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"text"},success:function(e){var s=new Blob([o]),n=document.createElement("a");n.href=window.URL.createObjectURL(s),n.download=e.data,n.click()}})}})})}); //# sourceMappingURL=spbc-settings_tab--scanner.min.js.map diff --git a/js/spbc-settings_tab--scanner.min.js.map b/js/spbc-settings_tab--scanner.min.js.map index b1a8218c2..7267e8cf9 100644 --- a/js/spbc-settings_tab--scanner.min.js.map +++ b/js/spbc-settings_tab--scanner.min.js.map @@ -1 +1 @@ -{"version":3,"file":"spbc-settings_tab--scanner.min.js","sources":["spbc-settings_tab--scanner.js"],"sourcesContent":["function spbc_popup_tip___show(show_icon){\n\n\tvar tip_title = show_icon.attr('spbc_tip_title') || null;\n\tvar\ttip_text = show_icon.attr('spbc_tip_text') || null;\n\tvar remove_desc_func = function(e){\n\n\t\tif(\n\t\t\ttypeof e === 'undefined' ||\n\t\t\t(\n\t\t\t\t(jQuery(e.target).parent('.spbc_popup_tip--wrapper').length == 0 || jQuery(e.target).hasClass('spbc_popup_tip--icon---cancel')) &&\n\t\t\t\t!jQuery(e.target).hasClass('spbc_popup_tip--icon---show')\n\t\t\t)\n\t\t){\n\t\t\tjQuery('.spbc_popup_tip--wrapper').hide();\n\t\t\tjQuery(document).off('click', remove_desc_func);\n\t\t}\n\t};\n\n\tremove_desc_func();\n\n\tshow_icon.after(\"
\");\n\n\tvar obj = jQuery('.spbc_popup_tip--wrapper');\n\n\tobj.empty()\n\t\t.append(\"
\")\n\t\t.css({\n\t\t\ttop: show_icon.position().top - 2,\n\t\t\tleft: show_icon.position().left + 25\n\t\t});\n\tobj.append(\"\")\n\t\t.append(\"

\" + tip_title + \"

\")\n\t\t.append(\"

\" + tip_text + \"

\");\n\n\tjQuery(document).on('click', remove_desc_func);\n\tshow_icon.parents('tr').on('mouseout', remove_desc_func);\n}\n\nfunction spbc_scanner_button_file_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\n/**\n * Delete file from analysis log\n */\nfunction spbc_scanner_analysis_log_delete_from_log(obj) {\n\tconst self = jQuery(obj);\n\tconst data = {\n\t\taction: 'spbc_scanner_analysis_log_delete_from_log',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: window.location.reload(),\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\n\tlet wp_wrap = jQuery('#wpwrap')\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tdialog_window.dialog({\n\t\tmodal:true,\n\t\ttitle: 'Loading..',\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(wp_wrap.width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: false,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').height((document.documentElement.clientHeight) / 100 * 25);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t})\n\n\tdialog_window.append('\"Wait')\n\n\tlet spinner = jQuery('#spbc_file_view_preloader')\n\tlet size_multiplier = (wp_wrap.width() * 0.0004)\n\n\tspinner.height(128 * size_multiplier)\n\tspinner.width(128 * size_multiplier)\n\tspinner.css({left: dialog_window.width()/2 - (128 * size_multiplier / 2)})\n\tspinner.css({top: dialog_window.height()/2 - (128 * size_multiplier / 2)})\n\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonView_callback(result){\n\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tjQuery('#spbc_file_view_preloader').css({display:'none'})\n\n\tdialog_window.dialog({title: ('Loaded: ' + result.file_path)})\n\n\tlet row_template = '
%s

%s


';\n\n\tfor(let row in result.file){\n\t\tdialog_window.append(row_template.printf(row, result.file[row]));\n\t}\n\n\tlet content_height = Object.keys(result.file).length * 19 < 76 ? 76 : Object.keys(result.file).length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'hidden' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tdialog_window.css({\n\t\theight: height,\n\t\toverflow: overflow\n\t})\n\n\tconsole.log('FILE_VIEWED');\n}\n\nfunction spbc_scanner_button_file_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBadFile_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parent().attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBad_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonViewBadFile_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE_FILE');\n\tconsole.log(arguments);\n\n\tvar row_template = '
%s

%s


',\n\t\trow_template_bad = '
%s

%s


',\n\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\n\tfor(let str_num in str_nums){\n\n\t\tlet row = +str_nums[str_num],\n\t\t\tdisplay_depth = 2;\n\n\t\t// Display only existing lines of file\n\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\tjQuery('#spbc_dialog').append((row === curr_row ? row_template_bad : row_template).printf(curr_row, result.file[curr_row]));\n\t\t\t}\n\t\t}\n\n\t\t// Placing an empty string between results\n\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\t}\n\n\t // Removing last empty string\n\tjQuery('#spbc_dialog div').last().remove();\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t});\n}\n\nfunction spbc_scannerButtonViewBad_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE');\n\n\tconsole.log(arguments);\n\n\tlet afterClose = () => {};\n\n\tif ( result.success == true ) {\n\t\tconsole.log(result);\n\t\tvar row_template = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\trow_template_bad = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\n\t\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\t\t//get a map of bad strings\n\t\tlet bad_strings_map = new Map(Object.entries(result.weak_spots.CRITICAL)) //TODO: Probably there can get something else except CRITICAL in the future\n\t\tfor(let str_num in str_nums){\n\n\t\t\tlet row = +str_nums[str_num],\n\t\t\t\tdisplay_depth = 2;\n\n\t\t\t// Display only existing lines of file\n\t\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\t\tlet is_bad_string = (row === curr_row)\n\t\t\t\t\tlet unformatted_row\n\t\t\t\t\tlet highlited_row\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\tunformatted_row = row_template_bad\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunformatted_row = row_template\n\t\t\t\t\t}\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, bad_strings_map.get(str_nums[str_num]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, result.file[curr_row]);\n\t\t\t\t\t}\n\t\t\t\t\tjQuery('#spbc_dialog').append(highlited_row);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Placing an empty string between results\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\n\t\t\t// Removing last empty string\n\t\t\tjQuery('#spbc_dialog div').last().remove();\n\t\t}\n\t} else {\n\t\tlet wrapperElement = '
%s
'\n\t\tjQuery('#spbc_dialog').append(wrapperElement.printf(result.content));\n\t\tafterClose = () => {document.location.reload();};\n\t}\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\theight = 'auto',\n \t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll';\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t\tclose: afterClose,\n\t});\n}\n\nfunction spbc_scanner_button_page_approve(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_approve',\n\t\tpage_url: self.parent().attr('uid'),\n\t\tpage_id: self.parent().parent().siblings('.page_id').text(),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: () => {\n\t\t\twindow.location.reload();\n\t\t},\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_file_compare_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_compare',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonFileCompare_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonFileCompare_callback(result, data, params){\n\n\tconsole.log('FILE_COMPARED');\n\n\tlet row_template = '

%s

%s

%s


';\n\tlet row_template_bad = '

%s

%s

%s


';\n\n\tjQuery('#spbc_dialog').append(row_template.printf('Modified', 'Line', 'Original'));\n\n\tfor(var row=1, prev = false, next = false; typeof result.file[row] != 'undefined' || typeof result.file_original[row] != 'undefined'; row++){\n\n\t\tif(typeof result.file[row] == 'undefined') result.file[row] = '';\n\t\tif(typeof result.file_original[row] == 'undefined') result.file_original[row] = '';\n\n\t\t// Display only existing lines of file\n\t\tif(result.difference.indexOf(row) != -1){\n\t\t\tfor(let display_depth = 2, curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' && typeof result.file_original[row] !== 'undefined') {\n\t\t\t\t\tjQuery('#spbc_dialog').append(\n\t\t\t\t\t\t(row === curr_row ? row_template_bad : row_template).printf(\n\t\t\t\t\t\t\tresult.file[curr_row] ? result.file[curr_row] : '',\n\t\t\t\t\t\t\tcurr_row,\n\t\t\t\t\t\t\tresult.file_original[curr_row] ? result.file_original[curr_row] : ''\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', '', ''));\n\t\t}\n\t}\n\n\tvar content_height = jQuery('#spbc_dialog div').length * 19 + 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\theight: height,\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: true,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t}\n\t});\n}\n\nfunction spbc_scanner__reload_scan_info() {\n\tjQuery('.spbc_hint__last_scan_title').text(spbcScaner.look_below_for_scan_res);\n\tconst data = {\n\t\taction: 'spbc_scanner__last_scan_info'\n\t};\n\tconst params = {\n\t\tcallback: (result) => {\n\t\t\tdocument.getElementById('spbc_scanner__last_scan_info').innerText = result.data;\n\t\t}\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\njQuery(document).ready(function(){\n\n\t// EVENT HADLING\n\tspbc_tbl__bulk_actions__listen(); // Table. Row bulk handler\n\tspbc_tbl__row_actions__listen(); // Table. Row actions handler\n\tspbc_tbl__pagination__listen(); // Table. Pagination handler\n\tspbc_tbl__sort__listen(); // Table. Sort handler\n\n\tspbcStartShowHide();\n\n\t// Preparing progressbar\n\tjQuery('#spbc_scaner_progress_bar').progressbar({\n\t\tvalue: 0,\n\t\tcreate: function( event, ui ) {\n\t\t\tevent.target.style.position = 'relative';\n\t\t\tevent.target.style.marginBottom = '12px';\n\t\t},\n\t\tchange: function(event, ui){\n\t\t\tjQuery('.spbc_progressbar_counter span').text(jQuery(event.target).progressbar('option', 'value') + ' %');\n\t\t},\n\t});\n\n\t// Preparing accordion\n\tjQuery('#spbc_scan_accordion').accordion({\n\t\theader: \"h3\",\n\t\theightStyle: 'content',\n\t\tcollapsible: true,\n\t\tactive: false,\n\t\tactivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 0 && ui.oldHeader.length === 0 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom spbc-overflow--visible\");\n\t\t},\n\t\tbeforeActivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 1 && ui.oldHeader.length === 1 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom\");\n\t\t}\n\t});\n\n\t// Init scanner plugin\n\twindow.spbc_scanner = new spbcMalwareScanner({\n\t\tsettings: spbcScaner.settings,\n\t\tstates: spbcScaner.states,\n\t\tbutton: jQuery('#spbc_perform_scan'),\n\t\tspinner: jQuery('#spbc_perform_scan').next(),\n\t\tcallback: null,\n\t\tprogress_overall: jQuery('#spbc_scaner_progress_overall'),\n\t\tprogressbar: jQuery('#spbc_scaner_progress_bar'),\n\t\tprogressbar_text: jQuery('.spbc_progressbar_counter span'),\n\t\twrapper: document.getElementsByClassName('spbc_unchecked_file_list'),\n\t\twarnings: {\n\t\t long_scan: jQuery('.spbc_hint_warning__long_scan'),\n outdated: jQuery('.spbc_hint_warning__outdated')\n }\n\t});\n\n\tjQuery(document).on('click', '.spbc_popup_tip--icon---show', function(){\n\t\tspbc_popup_tip___show( jQuery( this ) );\n\t});\n\n\tjQuery('#spbc_perform_scan').on('click', function(){\n\t\tjQuery('#spbcscan-results-log-module').remove();\n\t\tspbc_scanner.actionControl();\n\n\t\tif (!jQuery(\".spbc_log-wrapper .panel-body\").length) {\n\t\t\tjQuery(\".spbc_log-wrapper\").append('
');\n\t\t}\n\n\t\tjQuery(\".spbc_log-wrapper\").resizable({\n\t\t handles: 'n, s',\n\t containment: 'document',\n\t\t});\n\t});\n\n\tjQuery(\"#spbcscan-results-log-module\").resizable({\n\t handles: 'n, s',\n containment: 'document',\n\t});\n\n\t//DEBUG\n\t// Clear table\n\tjQuery('#spbc_scanner_clear').on('click', function(){\n\n\t\tif( ! confirm('Do you wanna clear the table with file scan results?') )\n\t\t\treturn;\n\n\t\tconsole.log('CLEAR');\n\n\t\tspbc_sendAJAXRequest(\n\t\t\t{ action: 'spbc_scanner_clear', },\n\t\t\t{\n\t\t\t\ttype: 'GET',\n\t\t\t\tsuccessCallback: function(){ document.location = document.location },\n\t\t\t\tcomplete: null,\n\t\t\t\terrorOutput: null,\n\t\t\t\tcontext: this,\n\t\t\t\ttimeout: 40000\n\t\t\t},\n\t\t);\n\t});\n\n\tjQuery('#spbc_scanner_save_to_pdf').on('click', function(){\n\t\tjQuery.ajax({\n\t\t\turl: spbcSettings.ajaxurl,\n\t\t\ttype: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'spbc_scanner_save_to_pdf',\n\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\tno_cache: Math.random()\n\t\t\t},\n\t\t\txhrFields: {\n\t\t\t\tresponseType: 'blob'\n\t\t\t},\n\t\t\tsuccess: function(data) {\n\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\turl: spbcSettings.ajaxurl,\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\taction: 'spbc_scanner_get_pdf_file_name',\n\t\t\t\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\t\t\t\tno_cache: Math.random()\n\t\t\t\t\t\t},\n\t\t\t\t\t\txhrFields: {\n\t\t\t\t\t\t\tresponseType: 'text'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function(filename) {\n\t\t\t\t\t\t\tlet blob=new Blob([data]);\n\t\t\t\t\t\t\tlet link=document.createElement('a');\n\t\t\t\t\t\t\tlink.href=window.URL.createObjectURL(blob);\n\t\t\t\t\t\t\tlink.download=filename.data;\n\t\t\t\t\t\t\tlink.click();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t});\n\t});\n});"],"names":["spbc_popup_tip___show","show_icon","remove_desc_func","e","jQuery","target","parent","length","hasClass","hide","document","off","tip_title","attr","tip_text","obj","after","empty","append","css","top","position","left","on","parents","spbc_scanner_button_file_view_event","self","data","action","file_id","params","spinner","siblings","callback","spbc_scannerButtonView_callback","errorOutput","msg","spbcModal","open","putError","spbc_sendAJAXRequest","spbc_scanner_analysis_log_delete_from_log","window","location","reload","spbc_scanner_button_page_view_event","page_url","wp_wrap","dialog_window","dialog","modal","title","my","at","of","width","show","effect","duration","draggable","resizable","closeText","classes","ui-dialog","event","ui","style","overflow","height","documentElement","beforeClose","body","size_multiplier","result","let","row","display","file_path","file","printf","content_height","Object","keys","visible_height","console","log","spbc_scanner_button_file_view_bad_event","spbc_scannerButtonViewBadFile_callback","spbc_scanner_button_page_view_bad_event","spbc_scannerButtonViewBad_callback","arguments","severity","str_num","row_template","str_nums","weak_spots","JSON","parse","concat","Set","sort","curr_row","last","remove","afterClose","success","bad_strings_map","Map","entries","CRITICAL","is_bad_string","unformatted_row","highlited_row","get","content","close","spbc_scanner_button_page_approve","page_id","text","spbc_scanner_button_file_compare_event","spbc_scannerButtonFileCompare_callback","file_original","difference","indexOf","spbc_scanner__reload_scan_info","spbcScaner","look_below_for_scan_res","getElementById","innerText","ready","spbc_tbl__bulk_actions__listen","spbc_tbl__row_actions__listen","spbc_tbl__pagination__listen","spbc_tbl__sort__listen","spbcStartShowHide","progressbar","value","create","marginBottom","change","accordion","header","heightStyle","collapsible","active","activate","oldPanel","oldHeader","beforeActivate","spbc_scanner","spbcMalwareScanner","settings","states","button","next","progress_overall","progressbar_text","wrapper","getElementsByClassName","warnings","long_scan","outdated","this","actionControl","handles","containment","confirm","type","successCallback","complete","context","timeout","ajax","url","spbcSettings","ajaxurl","security","ajax_nonce","no_cache","Math","random","xhrFields","responseType","filename","blob","Blob","link","createElement","href","URL","createObjectURL","download","click"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spbc-settings_tab--scanner.min.js","sources":["spbc-settings_tab--scanner.js"],"sourcesContent":["function spbc_popup_tip___show(show_icon){\n\n\tvar tip_title = show_icon.attr('spbc_tip_title') || null;\n\tvar\ttip_text = show_icon.attr('spbc_tip_text') || null;\n\tvar remove_desc_func = function(e){\n\n\t\tif(\n\t\t\ttypeof e === 'undefined' ||\n\t\t\t(\n\t\t\t\t(jQuery(e.target).parent('.spbc_popup_tip--wrapper').length == 0 || jQuery(e.target).hasClass('spbc_popup_tip--icon---cancel')) &&\n\t\t\t\t!jQuery(e.target).hasClass('spbc_popup_tip--icon---show')\n\t\t\t)\n\t\t){\n\t\t\tjQuery('.spbc_popup_tip--wrapper').hide();\n\t\t\tjQuery(document).off('click', remove_desc_func);\n\t\t}\n\t};\n\n\tremove_desc_func();\n\n\tshow_icon.after(\"
\");\n\n\tvar obj = jQuery('.spbc_popup_tip--wrapper');\n\n\tobj.empty()\n\t\t.append(\"
\")\n\t\t.css({\n\t\t\ttop: show_icon.position().top - 2,\n\t\t\tleft: show_icon.position().left + 25\n\t\t});\n\tobj.append(\"\")\n\t\t.append(\"

\" + tip_title + \"

\")\n\t\t.append(\"

\" + tip_text + \"

\");\n\n\tjQuery(document).on('click', remove_desc_func);\n\tshow_icon.parents('tr').on('mouseout', remove_desc_func);\n}\n\nfunction spbc_scanner_button_file_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\n/**\n * Delete file from analysis log\n */\nfunction spbc_scanner_analysis_log_delete_from_log(obj) {\n\tconst self = jQuery(obj);\n\tconst data = {\n\t\taction: 'spbc_scanner_analysis_log_delete_from_log',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: window.location.reload(),\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\n\tlet wp_wrap = jQuery('#wpwrap')\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tdialog_window.dialog({\n\t\tmodal:true,\n\t\ttitle: 'Loading..',\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(wp_wrap.width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: false,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').height((document.documentElement.clientHeight) / 100 * 25);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t})\n\n\tdialog_window.append('\"Wait')\n\n\tlet spinner = jQuery('#spbc_file_view_preloader')\n\tlet size_multiplier = (wp_wrap.width() * 0.0004)\n\n\tspinner.height(128 * size_multiplier)\n\tspinner.width(128 * size_multiplier)\n\tspinner.css({left: dialog_window.width()/2 - (128 * size_multiplier / 2)})\n\tspinner.css({top: dialog_window.height()/2 - (128 * size_multiplier / 2)})\n\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonView_callback(result){\n\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tjQuery('#spbc_file_view_preloader').css({display:'none'})\n\n\tdialog_window.dialog({title: ('Loaded: ' + result.file_path)})\n\n\tlet row_template = '
%s

%s


';\n\n\tfor(let row in result.file){\n\t\tdialog_window.append(row_template.printf(row, result.file[row]));\n\t}\n\n\tlet content_height = Object.keys(result.file).length * 19 < 76 ? 76 : Object.keys(result.file).length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'hidden' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tdialog_window.css({\n\t\theight: height,\n\t\toverflow: overflow\n\t})\n\n\tconsole.log('FILE_VIEWED');\n}\n\nfunction spbc_scanner_button_file_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBadFile_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parent().attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBad_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonViewBadFile_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE_FILE');\n\tconsole.log(arguments);\n\n\tvar row_template = '
%s

%s


',\n\t\trow_template_bad = '
%s

%s


',\n\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\n\tfor(let str_num in str_nums){\n\n\t\tlet row = +str_nums[str_num],\n\t\t\tdisplay_depth = 2;\n\n\t\t// Display only existing lines of file\n\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\tjQuery('#spbc_dialog').append((row === curr_row ? row_template_bad : row_template).printf(curr_row, result.file[curr_row]));\n\t\t\t}\n\t\t}\n\n\t\t// Placing an empty string between results\n\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\t\tif (str_nums = [1,2]) break;\n\t}\n\n\t // Removing last empty string\n\tjQuery('#spbc_dialog div').last().remove();\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t});\n}\n\nfunction spbc_scannerButtonViewBad_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE');\n\n\tconsole.log(arguments);\n\n\tlet afterClose = () => {};\n\n\tif ( result.success == true ) {\n\t\tconsole.log(result);\n\t\tvar row_template = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\trow_template_bad = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\n\t\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\t\t//get a map of bad strings\n\t\tlet bad_strings_map = new Map(Object.entries(result.weak_spots.CRITICAL)) //TODO: Probably there can get something else except CRITICAL in the future\n\t\tfor(let str_num in str_nums){\n\n\t\t\tlet row = +str_nums[str_num],\n\t\t\t\tdisplay_depth = 2;\n\n\t\t\t// Display only existing lines of file\n\t\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\t\tlet is_bad_string = (row === curr_row)\n\t\t\t\t\tlet unformatted_row\n\t\t\t\t\tlet highlited_row\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\tunformatted_row = row_template_bad\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunformatted_row = row_template\n\t\t\t\t\t}\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, bad_strings_map.get(str_nums[str_num]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, result.file[curr_row]);\n\t\t\t\t\t}\n\t\t\t\t\tjQuery('#spbc_dialog').append(highlited_row);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Placing an empty string between results\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\n\t\t\t// Removing last empty string\n\t\t\tjQuery('#spbc_dialog div').last().remove();\n\t\t}\n\t} else {\n\t\tlet wrapperElement = '
%s
'\n\t\tjQuery('#spbc_dialog').append(wrapperElement.printf(result.content));\n\t\tafterClose = () => {document.location.reload();};\n\t}\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\theight = 'auto',\n \t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll';\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t\tclose: afterClose,\n\t});\n}\n\nfunction spbc_scanner_button_page_approve(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_approve',\n\t\tpage_url: self.parent().attr('uid'),\n\t\tpage_id: self.parent().parent().siblings('.page_id').text(),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: () => {\n\t\t\twindow.location.reload();\n\t\t},\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_file_compare_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_compare',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonFileCompare_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonFileCompare_callback(result, data, params){\n\n\tconsole.log('FILE_COMPARED');\n\n\tlet row_template = '

%s

%s

%s


';\n\tlet row_template_bad = '

%s

%s

%s


';\n\n\tjQuery('#spbc_dialog').append(row_template.printf('Modified', 'Line', 'Original'));\n\n\tfor(var row=1, prev = false, next = false; typeof result.file[row] != 'undefined' || typeof result.file_original[row] != 'undefined'; row++){\n\n\t\tif(typeof result.file[row] == 'undefined') result.file[row] = '';\n\t\tif(typeof result.file_original[row] == 'undefined') result.file_original[row] = '';\n\n\t\t// Display only existing lines of file\n\t\tif(result.difference.indexOf(row) != -1){\n\t\t\tfor(let display_depth = 2, curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' && typeof result.file_original[row] !== 'undefined') {\n\t\t\t\t\tjQuery('#spbc_dialog').append(\n\t\t\t\t\t\t(row === curr_row ? row_template_bad : row_template).printf(\n\t\t\t\t\t\t\tresult.file[curr_row] ? result.file[curr_row] : '',\n\t\t\t\t\t\t\tcurr_row,\n\t\t\t\t\t\t\tresult.file_original[curr_row] ? result.file_original[curr_row] : ''\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', '', ''));\n\t\t}\n\t}\n\n\tvar content_height = jQuery('#spbc_dialog div').length * 19 + 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\theight: height,\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: true,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t}\n\t});\n}\n\nfunction spbc_scanner__reload_scan_info() {\n\tjQuery('.spbc_hint__last_scan_title').text(spbcScaner.look_below_for_scan_res);\n\tconst data = {\n\t\taction: 'spbc_scanner__last_scan_info'\n\t};\n\tconst params = {\n\t\tcallback: (result) => {\n\t\t\tdocument.getElementById('spbc_scanner__last_scan_info').innerText = result.data;\n\t\t}\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\njQuery(document).ready(function(){\n\n\t// EVENT HADLING\n\tspbc_tbl__bulk_actions__listen(); // Table. Row bulk handler\n\tspbc_tbl__row_actions__listen(); // Table. Row actions handler\n\tspbc_tbl__pagination__listen(); // Table. Pagination handler\n\tspbc_tbl__sort__listen(); // Table. Sort handler\n\n\tspbcStartShowHide();\n\n\t// Preparing progressbar\n\tjQuery('#spbc_scaner_progress_bar').progressbar({\n\t\tvalue: 0,\n\t\tcreate: function( event, ui ) {\n\t\t\tevent.target.style.position = 'relative';\n\t\t\tevent.target.style.marginBottom = '12px';\n\t\t},\n\t\tchange: function(event, ui){\n\t\t\tjQuery('.spbc_progressbar_counter span').text(jQuery(event.target).progressbar('option', 'value') + ' %');\n\t\t},\n\t});\n\n\t// Preparing accordion\n\tjQuery('#spbc_scan_accordion').accordion({\n\t\theader: \"h3\",\n\t\theightStyle: 'content',\n\t\tcollapsible: true,\n\t\tactive: false,\n\t\tactivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 0 && ui.oldHeader.length === 0 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom spbc-overflow--visible\");\n\t\t},\n\t\tbeforeActivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 1 && ui.oldHeader.length === 1 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom\");\n\t\t}\n\t});\n\n\t// Init scanner plugin\n\twindow.spbc_scanner = new spbcMalwareScanner({\n\t\tsettings: spbcScaner.settings,\n\t\tstates: spbcScaner.states,\n\t\tbutton: jQuery('#spbc_perform_scan'),\n\t\tspinner: jQuery('#spbc_perform_scan').next(),\n\t\tcallback: null,\n\t\tprogress_overall: jQuery('#spbc_scaner_progress_overall'),\n\t\tprogressbar: jQuery('#spbc_scaner_progress_bar'),\n\t\tprogressbar_text: jQuery('.spbc_progressbar_counter span'),\n\t\twrapper: document.getElementsByClassName('spbc_unchecked_file_list'),\n\t\twarnings: {\n\t\t long_scan: jQuery('.spbc_hint_warning__long_scan'),\n outdated: jQuery('.spbc_hint_warning__outdated')\n }\n\t});\n\n\tjQuery(document).on('click', '.spbc_popup_tip--icon---show', function(){\n\t\tspbc_popup_tip___show( jQuery( this ) );\n\t});\n\n\tjQuery('#spbc_perform_scan').on('click', function(){\n\t\tjQuery('#spbcscan-results-log-module').remove();\n\t\tspbc_scanner.actionControl();\n\n\t\tif (!jQuery(\".spbc_log-wrapper .panel-body\").length) {\n\t\t\tjQuery(\".spbc_log-wrapper\").append('
');\n\t\t}\n\n\t\tjQuery(\".spbc_log-wrapper\").resizable({\n\t\t handles: 'n, s',\n\t containment: 'document',\n\t\t});\n\t});\n\n\tjQuery(\"#spbcscan-results-log-module\").resizable({\n\t handles: 'n, s',\n containment: 'document',\n\t});\n\n\t//DEBUG\n\t// Clear table\n\tjQuery('#spbc_scanner_clear').on('click', function(){\n\n\t\tif( ! confirm('Do you wanna clear the table with file scan results?') )\n\t\t\treturn;\n\n\t\tconsole.log('CLEAR');\n\n\t\tspbc_sendAJAXRequest(\n\t\t\t{ action: 'spbc_scanner_clear', },\n\t\t\t{\n\t\t\t\ttype: 'GET',\n\t\t\t\tsuccessCallback: function(){ document.location = document.location },\n\t\t\t\tcomplete: null,\n\t\t\t\terrorOutput: null,\n\t\t\t\tcontext: this,\n\t\t\t\ttimeout: 40000\n\t\t\t},\n\t\t);\n\t});\n\n\tjQuery('#spbc_scanner_save_to_pdf').on('click', function(){\n\t\tjQuery.ajax({\n\t\t\turl: spbcSettings.ajaxurl,\n\t\t\ttype: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'spbc_scanner_save_to_pdf',\n\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\tno_cache: Math.random()\n\t\t\t},\n\t\t\txhrFields: {\n\t\t\t\tresponseType: 'blob'\n\t\t\t},\n\t\t\tsuccess: function(data) {\n\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\turl: spbcSettings.ajaxurl,\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\taction: 'spbc_scanner_get_pdf_file_name',\n\t\t\t\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\t\t\t\tno_cache: Math.random()\n\t\t\t\t\t\t},\n\t\t\t\t\t\txhrFields: {\n\t\t\t\t\t\t\tresponseType: 'text'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function(filename) {\n\t\t\t\t\t\t\tlet blob=new Blob([data]);\n\t\t\t\t\t\t\tlet link=document.createElement('a');\n\t\t\t\t\t\t\tlink.href=window.URL.createObjectURL(blob);\n\t\t\t\t\t\t\tlink.download=filename.data;\n\t\t\t\t\t\t\tlink.click();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t});\n\t});\n});"],"names":["spbc_popup_tip___show","show_icon","remove_desc_func","e","jQuery","target","parent","length","hasClass","hide","document","off","tip_title","attr","tip_text","obj","after","empty","append","css","top","position","left","on","parents","spbc_scanner_button_file_view_event","self","data","action","file_id","params","spinner","siblings","callback","spbc_scannerButtonView_callback","errorOutput","msg","spbcModal","open","putError","spbc_sendAJAXRequest","spbc_scanner_analysis_log_delete_from_log","window","location","reload","spbc_scanner_button_page_view_event","page_url","wp_wrap","dialog_window","dialog","modal","title","my","at","of","width","show","effect","duration","draggable","resizable","closeText","classes","ui-dialog","event","ui","style","overflow","height","documentElement","beforeClose","body","size_multiplier","result","let","row","display","file_path","file","printf","content_height","Object","keys","visible_height","console","log","spbc_scanner_button_file_view_bad_event","spbc_scannerButtonViewBadFile_callback","spbc_scanner_button_page_view_bad_event","spbc_scannerButtonViewBad_callback","arguments","severity","str_num","row_template","str_nums","weak_spots","JSON","parse","concat","Set","sort","curr_row","last","remove","afterClose","success","bad_strings_map","Map","entries","CRITICAL","is_bad_string","unformatted_row","highlited_row","get","content","close","spbc_scanner_button_page_approve","page_id","text","spbc_scanner_button_file_compare_event","spbc_scannerButtonFileCompare_callback","file_original","difference","indexOf","spbc_scanner__reload_scan_info","spbcScaner","look_below_for_scan_res","getElementById","innerText","ready","spbc_tbl__bulk_actions__listen","spbc_tbl__row_actions__listen","spbc_tbl__pagination__listen","spbc_tbl__sort__listen","spbcStartShowHide","progressbar","value","create","marginBottom","change","accordion","header","heightStyle","collapsible","active","activate","oldPanel","oldHeader","beforeActivate","spbc_scanner","spbcMalwareScanner","settings","states","button","next","progress_overall","progressbar_text","wrapper","getElementsByClassName","warnings","long_scan","outdated","this","actionControl","handles","containment","confirm","type","successCallback","complete","context","timeout","ajax","url","spbcSettings","ajaxurl","security","ajax_nonce","no_cache","Math","random","xhrFields","responseType","filename","blob","Blob","link","createElement","href","URL","createObjectURL","download","click"],"mappings":"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"} \ No newline at end of file diff --git a/js/src/spbc-settings_tab--scanner.js b/js/src/spbc-settings_tab--scanner.js index 9afa0b8a0..4463ac2bc 100644 --- a/js/src/spbc-settings_tab--scanner.js +++ b/js/src/spbc-settings_tab--scanner.js @@ -205,6 +205,9 @@ function spbc_scannerButtonViewBadFile_callback(result, data, params){ // Placing an empty string between results jQuery('#spbc_dialog').append(row_template. printf('', '')); + + // exception + if (str_nums = [1,2]) break; } // Removing last empty string From 011efd82365a711d8bcb5e29d0d9ab18808fce62 Mon Sep 17 00:00:00 2001 From: Glomberg Date: Wed, 22 Mar 2023 12:04:35 +0300 Subject: [PATCH 13/28] Tested up to: 6.2 --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 29aa92e90..7b7360a06 100644 --- a/readme.txt +++ b/readme.txt @@ -2,7 +2,7 @@ Contributors: glomberg, artemacleantalk, alexandergull Tags: security, firewall, malware, wordpress security, brute force Requires at least: 3.0 -Tested up to: 6.1 +Tested up to: 6.2 Requires PHP: 5.6 Stable tag: 2.105 License: GPLv2 From 8244320017d957361d7667e5fcc57f1578f68d94 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Wed, 22 Mar 2023 14:48:03 +0500 Subject: [PATCH 14/28] Fix. Siganture analysis update. Do not skip files analysis if aggregated size overlimited. --- lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php b/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php index 57236cf66..bcfc1c769 100644 --- a/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php +++ b/lib/CleantalkSP/SpbctWP/Scanner/ScannerQueue.php @@ -1142,6 +1142,7 @@ public function signature_analysis($status = 'UNKNOWN,MODIFIED,OK,INFECTED', $of $aggregated_size += $file['size']; $files_to_check[] = $file; } else { + $size_breaking_flag = true; break; } } From c6a7aae3095738a6c53e481663ee588a4e6b093b Mon Sep 17 00:00:00 2001 From: svfcode Date: Wed, 22 Mar 2023 13:54:31 +0400 Subject: [PATCH 15/28] Fix. Traffic control. Add time switch from removed option to longer option. --- lib/CleantalkSP/Updater/UpdaterScripts.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/CleantalkSP/Updater/UpdaterScripts.php b/lib/CleantalkSP/Updater/UpdaterScripts.php index c5b619735..dd368e2b7 100644 --- a/lib/CleantalkSP/Updater/UpdaterScripts.php +++ b/lib/CleantalkSP/Updater/UpdaterScripts.php @@ -1065,4 +1065,20 @@ public static function updateTo_2_105_0() //phpcs:ignore PSR1.Methods.CamelCapsM $spbc->data['site_utc_offset_in_seconds'] = 0; $spbc->save('data'); } + + public static function updateTo_2_106_0() //phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps + { + global $spbc; + + if (isset($spbc->settings['traffic_control__autoblock_period'])) { + if ($spbc->settings['traffic_control__autoblock_period'] == 180) { + $spbc->settings['traffic_control__autoblock_period'] = 300; + } + if ($spbc->settings['traffic_control__autoblock_period'] == 600) { + $spbc->settings['traffic_control__autoblock_period'] = 900; + } + } + + $spbc->save('settings'); + } } From 2753e6a363e5d0dae957cfc87edd5337e179666c Mon Sep 17 00:00:00 2001 From: svfcode Date: Wed, 22 Mar 2023 14:08:00 +0400 Subject: [PATCH 16/28] Fix. TC. Made compare Identical instead Equal. --- lib/CleantalkSP/Updater/UpdaterScripts.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/CleantalkSP/Updater/UpdaterScripts.php b/lib/CleantalkSP/Updater/UpdaterScripts.php index dd368e2b7..602a26024 100644 --- a/lib/CleantalkSP/Updater/UpdaterScripts.php +++ b/lib/CleantalkSP/Updater/UpdaterScripts.php @@ -1071,10 +1071,10 @@ public static function updateTo_2_106_0() //phpcs:ignore PSR1.Methods.CamelCapsM global $spbc; if (isset($spbc->settings['traffic_control__autoblock_period'])) { - if ($spbc->settings['traffic_control__autoblock_period'] == 180) { + if ((int)$spbc->settings['traffic_control__autoblock_period'] === 180) { $spbc->settings['traffic_control__autoblock_period'] = 300; } - if ($spbc->settings['traffic_control__autoblock_period'] == 600) { + if ((int)$spbc->settings['traffic_control__autoblock_period'] === 600) { $spbc->settings['traffic_control__autoblock_period'] = 900; } } From 8679242a5ca71c6b3f9bbfdfa708bf4e1f73bb21 Mon Sep 17 00:00:00 2001 From: Artem Anoshin Date: Wed, 22 Mar 2023 18:10:27 +0400 Subject: [PATCH 17/28] Fixed reduceFirewallResultsByPriority() --- lib/CleantalkSP/Security/Firewall.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/CleantalkSP/Security/Firewall.php b/lib/CleantalkSP/Security/Firewall.php index cafd27b9e..2844eecb8 100644 --- a/lib/CleantalkSP/Security/Firewall.php +++ b/lib/CleantalkSP/Security/Firewall.php @@ -172,7 +172,8 @@ private function reduceFirewallResultsByPriority(array $firewall_results) if ( ! empty($firewall_result__current->mask) && ! empty($firewall_result__final->mask) && // The mask are not empty $firewall_result__current->mask !== $firewall_result__final->mask && // The masks are not equal - $firewall_result__current->mask > $firewall_result__final->mask + $firewall_result__current->mask < $firewall_result__final->mask && + $firewall_result__current->is_personal === 0 ) { $firewall_result__final = $firewall_result__current; continue; From bd333dc0b7053566529311804efb7802f7eabe56 Mon Sep 17 00:00:00 2001 From: Artem Anoshin Date: Wed, 22 Mar 2023 18:16:46 +0400 Subject: [PATCH 18/28] Fix code --- lib/CleantalkSP/Security/Firewall.php | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/CleantalkSP/Security/Firewall.php b/lib/CleantalkSP/Security/Firewall.php index 2844eecb8..ce7edb547 100644 --- a/lib/CleantalkSP/Security/Firewall.php +++ b/lib/CleantalkSP/Security/Firewall.php @@ -175,7 +175,6 @@ private function reduceFirewallResultsByPriority(array $firewall_results) $firewall_result__current->mask < $firewall_result__final->mask && $firewall_result__current->is_personal === 0 ) { - $firewall_result__final = $firewall_result__current; continue; } From d2242c6187d4c8d83d63a49371a0d23b7d0e072b Mon Sep 17 00:00:00 2001 From: Artem Anoshin Date: Wed, 22 Mar 2023 18:27:24 +0400 Subject: [PATCH 19/28] Beautify code --- lib/CleantalkSP/Security/Firewall.php | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/CleantalkSP/Security/Firewall.php b/lib/CleantalkSP/Security/Firewall.php index ce7edb547..fc0ec1253 100644 --- a/lib/CleantalkSP/Security/Firewall.php +++ b/lib/CleantalkSP/Security/Firewall.php @@ -168,13 +168,7 @@ private function reduceFirewallResultsByPriority(array $firewall_results) ); foreach ( $firewall_results as $firewall_result__current ) { - // Pick the result with the smallest network. Don't count priority if fires. - if ( - ! empty($firewall_result__current->mask) && ! empty($firewall_result__final->mask) && // The mask are not empty - $firewall_result__current->mask !== $firewall_result__final->mask && // The masks are not equal - $firewall_result__current->mask < $firewall_result__final->mask && - $firewall_result__current->is_personal === 0 - ) { + if ($this->excludeResultFromCalculation($firewall_result__current, $firewall_result__final)) { continue; } @@ -246,4 +240,21 @@ private function isWhitelisted($results) public function updateLog(Result $fw_result) { } + + /** + * Pick the result with the smallest network. + * Don't count priority if fires. + * + * @param $firewall_result__current + * @param $firewall_result__final + * + * @return bool + */ + private function excludeResultFromCalculation($firewall_result__current, $firewall_result__final) + { + return ! empty($firewall_result__current->mask) && ! empty($firewall_result__final->mask) && // The mask are not empty + $firewall_result__current->mask !== $firewall_result__final->mask && // The masks are not equal + $firewall_result__current->mask < $firewall_result__final->mask && + $firewall_result__current->is_personal === 0; + } } From dcfb5cb4db79b628cf4d5bedb84612962f35055d Mon Sep 17 00:00:00 2001 From: Viktor Date: Thu, 23 Mar 2023 09:39:54 +0300 Subject: [PATCH 20/28] Fix. WAF. Upload checker details area fixed. (#182) --- css/spbc-admin.min.css | 2 +- css/spbc-settings.min.css | 2 +- css/src/spbc-admin.css | 8 ++++++++ lib/CleantalkSP/SpbctWP/Firewall/WAF.php | 11 +++++++---- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/css/spbc-admin.min.css b/css/spbc-admin.min.css index de376e11c..d7d18d176 100644 --- a/css/spbc-admin.min.css +++ b/css/spbc-admin.min.css @@ -1 +1 @@ -.spbc_translate_links{color:rgba(150,150,20,1)}.spbc_faq_links{color:rgba(20,150,20,1)}.spbc_support_links{color:rgba(150,20,20,1)}.spbc_setting_links{color:rgba(20,20,150,1)}.spbc_translate_links:hover{color:rgba(210,210,20,1)!important}.spbc_faq_links:hover{color:rgba(20,250,20,1)!important}.spbc_support_links:hover{color:rgba(250,20,20,1)!important}.spbc_setting_links:hover{color:rgba(20,20,250,1)!important}.--hide,.spbc_hide{display:none}#wp-admin-bar-cleantalk_admin_bar__parent_node span,.-display--inline-block{display:inline-block}.ctlk---red,.spbcRed{color:red}.spbcGreen{color:green}.spbcTextCenter{text-align:center}.spbc-overflow--visible{overflow:visible!important}._animate--rotate{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}#wp-admin-bar-cleantalk_admin_bar__parent_node{margin-right:5px}#wp-admin-bar-cleantalk_admin_bar__parent_node .spbc-icon-attention-alt{background:#d63638;color:#fff;border-radius:50%;font-size:12px}#wp-admin-bar-cleantalk_admin_bar__parent_node img.cleantalk_admin_bar__spbc_icon{width:14px;height:17px;margin-top:7px}#wp-admin-bar-cleantalk_admin_bar__parent_node img.cleantalk_admin_bar__apbct_icon{width:18px;height:18px;margin-top:7px}#wp-admin-bar-cleantalk_admin_bar__parent_node div.cleantalk_admin_bar__sum_counter{color:#999;display:inline;padding:2px 5px!important}#wp-admin-bar-spbc_admin_bar__settings_link a,.cleantalk-admin_bar__parent a{display:inline-block!important;padding:0 10px!important}.cleantalk_admin_bar__blocked div{cursor:not-allowed!important}.cleantalk_admin_bar__blocked div a{color:#777!important}b.spbc-admin_bar--online_admins{font-size:11px!important}.cleantalk_admin_bar__title{vertical-align:top;margin-left:5px!important}.clntlk-hint{position:relative!important}.clntlk-hint:hover{color:#fff}.clntlk-hint:hover::after{content:attr(hint);position:absolute;left:100%;top:50%;background:rgba(235,235,235,.85);padding:0 5px;border:1px solid #333;color:#000;font-style:normal;width:max-content;z-index:99999999999999999}.cleantalk_admin_bar__separator{height:0!important}.cleantalk_admin_bar__counter a{padding:0 10px!important}.cleantalk-admin_bar--list_wrapper .ab-sub-wrapper ul:last-child{margin-bottom:5px!important}span.red_dot{height:8px!important;width:8px!important;background-color:#d00!important;border-radius:50%!important;display:inline-block!important;margin-left:5px!important} \ No newline at end of file +.spbc_translate_links{color:rgba(150,150,20,1)}.spbc_faq_links{color:rgba(20,150,20,1)}.spbc_support_links{color:rgba(150,20,20,1)}.spbc_setting_links{color:rgba(20,20,150,1)}.spbc_translate_links:hover{color:rgba(210,210,20,1)!important}.spbc_faq_links:hover{color:rgba(20,250,20,1)!important}.spbc_support_links:hover{color:rgba(250,20,20,1)!important}.spbc_setting_links:hover{color:rgba(20,20,250,1)!important}.--hide,.spbc_hide{display:none}#wp-admin-bar-cleantalk_admin_bar__parent_node span,.-display--inline-block{display:inline-block}.ctlk---red,.spbcRed{color:red}.spbcGreen{color:green}.spbcTextCenter{text-align:center}.spbc-overflow--visible{overflow:visible!important}._animate--rotate{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}#wp-admin-bar-cleantalk_admin_bar__parent_node{margin-right:5px}#wp-admin-bar-cleantalk_admin_bar__parent_node .spbc-icon-attention-alt{background:#d63638;color:#fff;border-radius:50%;font-size:12px}#wp-admin-bar-cleantalk_admin_bar__parent_node img.cleantalk_admin_bar__spbc_icon{width:14px;height:17px;margin-top:7px}#wp-admin-bar-cleantalk_admin_bar__parent_node img.cleantalk_admin_bar__apbct_icon{width:18px;height:18px;margin-top:7px}#wp-admin-bar-cleantalk_admin_bar__parent_node div.cleantalk_admin_bar__sum_counter{color:#999;display:inline;padding:2px 5px!important}#wp-admin-bar-spbc_admin_bar__settings_link a,.cleantalk-admin_bar__parent a{display:inline-block!important;padding:0 10px!important}.cleantalk_admin_bar__blocked div{cursor:not-allowed!important}.cleantalk_admin_bar__blocked div a{color:#777!important}b.spbc-admin_bar--online_admins{font-size:11px!important}.cleantalk_admin_bar__title{vertical-align:top;margin-left:5px!important}.clntlk-hint{position:relative!important}.clntlk-hint:hover{color:#fff}.clntlk-hint:hover::after{content:attr(hint);position:absolute;left:100%;top:50%;background:rgba(235,235,235,.85);padding:0 5px;border:1px solid #333;color:#000;font-style:normal;width:max-content;z-index:99999999999999999}.cleantalk_admin_bar__separator{height:0!important}.cleantalk_admin_bar__counter a{padding:0 10px!important}.cleantalk-admin_bar--list_wrapper .ab-sub-wrapper ul:last-child{margin-bottom:5px!important}span.red_dot{height:8px!important;width:8px!important;background-color:#d00!important;border-radius:50%!important;display:inline-block!important;margin-left:5px!important}#spbct-upload-checker-details{overflow-y:scroll;height:150px}#spbct-upload-checker-details li:nth-child(2n+1){background:#d3d3d3} \ No newline at end of file diff --git a/css/spbc-settings.min.css b/css/spbc-settings.min.css index e7b5289f1..11dfe96bc 100644 --- a/css/spbc-settings.min.css +++ b/css/spbc-settings.min.css @@ -1 +1 @@ -.spbc---hidden,.spbc__show_more_logs,.spbc_waf_reason{display:none}#spbc_gdpr_open_modal:hover,.spbc_tab_nav{cursor:pointer}#showHideLink,#spbcTopWarning h4 span{margin-top:5px}.circle{border-radius:50%;align-items:center;justify-content:center;position:relative;background-color:#03a9f4;clip-path:polygon(50% 0%,100% 0,100% 100%,0 100%,0 100%,0 0,50% 0,50% 50%,50% 50%)}.circle-inner{width:100%;height:100%;border-radius:50%;background:#f7f7f7;transform:scale(.7)}.circle--small{width:16px;height:16px}.circle--mid{width:30px;height:30px}.-animation--circle{animation:2s linear forwards animation-circle}.-animation--30s{animation-duration:30s!important}.-animation--2min{animation-duration:120s!important}@keyframes animation-circle{12.5%{clip-path:polygon(50% 0%,100% 0,100% 100%,0 100%,0 100%,0 0,0 0,50% 50%,50% 50%)}25%{clip-path:polygon(50% 0%,100% 0,100% 100%,0 100%,0 100%,0 50%,0 50%,50% 50%,50% 50%)}37.5%{clip-path:polygon(50% 0%,100% 0,100% 100%,0 100%,0 100%,0 100%,0 100%,50% 50%,50% 50%)}50%{clip-path:polygon(50% 0%,100% 0,100% 100%,50% 100%,50% 100%,50% 100%,50% 100%,50% 50%,50% 50%)}62.5%{clip-path:polygon(50% 0%,100% 0,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,50% 50%,50% 50%)}75%{clip-path:polygon(50% 0%,100% 0,100% 50%,100% 50%,100% 50%,100% 50%,100% 50%,50% 50%,50% 50%)}87.5%{clip-path:polygon(50% 0%,100% 0,100% 0,100% 0,100% 0,100% 0,100% 0,50% 50%,50% 50%)}100%{clip-path:polygon(50% 0%,50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 50%,50% 50%)}}#confirmation-code--resend .circle{margin-left:5px;display:inline-block;vertical-align:text-bottom}#spbcTopWarning{margin-bottom:5px}#spbcTopWarning h3{margin:10px 0 5px}#spbcTopWarning h4,div.pagination{margin:10px}.spbc---gray{color:gray}.spbc---red{color:red}.spbc_bold{font-weight:800}.spbc---top{z-index:9999!important}.spbc_waf_reason_title{text-decoration:underline}.spbc_waf_reason_title:hover+.spbc_waf_reason{display:inline}.spbc_warning_counter{margin:0 5px;padding:0 7px;font-size:14px;height:23px;display:inline-block;text-align:center;border-radius:3px}.spbc_sub_setting{margin-left:30px!important}.spbc_sub2_setting{margin-left:60px!important}.spbc_affiliate_shortcode{width:inherit!important;min-width:inherit!important}.spbc_warning_counter--black{color:#fff;background-color:#000}.spbc_warning_counter--red{color:#000;background-color:red}.spbc_warning_counter--orange{color:#000;background-color:orange}.spbc_warning_counter--green{color:#000;background-color:green}.spbc_highlighted{outline-offset:5px;outline-color:red;outline-width:3px!important;outline-style:solid!important}.spbc_status_icon{vertical-align:text-bottom;margin:0 5px}.spbc_preloader,.spbc_preloader_button{margin-left:5px;vertical-align:text-top;display:none}.spbc_progressbar_counter{position:absolute;height:22px;width:100%;left:0;top:0;text-align:center}.spbc_progressbar_counter span{vertical-align:sub;line-height:22px;font-weight:600;font-size:18px}.ui-progressbar-value{background-image:url(../images/pbar-ani.gif)!important}.spbc_preloader{width:20px}.spbc_preloader_button{height:15px}.spbc_spinner_big{display:block;margin:40px auto}#spbc-modal-content,.spbc_scan_result_row td{text-align:center}.spbc_scan_result_row td:first-child{text-align:left}.spbc_scan_result_row td:nth-child(2){text-align:right}.spbc_scan_result_row td:last-child button{margin-left:3px}.spbc_compare_file_row_wrapper,.spbc_view_file_row_wrapper{line-height:19px}.spbc_compare_file_row_wrapper:nth-child(odd),.spbc_view_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_compare_file_row_wrapper:nth-child(2n),.spbc_view_file_row_wrapper:nth-child(2n){background:#ddd}.spbc_view_file_row_num{display:inline-block;width:30px;margin:0 0 0 5px;border-right:1px solid #000}.spbc_view_file_row{display:inline;margin:0 0 0 5px;line-height:19px;font-size:1em}.spbc_compare_file_row,ul.pagination{margin:0;display:inline-block}.spbc_compare_file_headings{text-align:center;width:100%;display:inline-block;font-weight:700}.spbc_compare_file_row_num{display:inline-block;width:20px;box-shadow:-2px 0 0 0 #000,2px 0 0 0 #000;padding:0 1%}.spbc_compare_file_row{width:45%;padding:0 1%}table.spbc_table_general{width:100%;border:0;border-spacing:-0em;border-collapse:collapse}table.spbc_table_general td,table.spbc_table_general th{position:relative;border:1px solid #666;padding:2px 10px}.spbcShortText{display:inline-block;width:100%}.spbcFullText{display:none;position:absolute;top:0;background:rgba(150,150,150,.9);color:#fff;padding:7px;border:1px solid #333;border-radius:5px;z-index:20}#spbc_translate_plugin,li.pagination{margin-left:10px}li.pagination{display:inline-block}span.current_page{font-size:1.3em;font-weight:600}.spbc_new{color:red;position:relative;font-size:10px;vertical-align:bottom;top:-8px}.spbc_wrapper_settings{margin:10px 0 0}.spbc_tabs_nav_wrapper{display:block;border-bottom:1px solid #ccc}.spbc_tab_nav{display:inline-block;margin:10px 0 0 .5em;padding:5px 10px;height:24px;border:1px solid #ccc;border-bottom:none;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.spbc_tab,tr:hover .spbc_hint--wrapper{display:none}.spbc_tab_nav:hover{background:#fff}.spbc_tab_nav--active{margin-bottom:-1px;border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.spbc_tab_nav--active:hover{background:#f1f1f1}.spbc_tab{margin:15px 0}.spbc_tab--active{display:block}.spbc_tab_fields_group{position:relative;min-width:255px;margin:10px auto;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fdfdfd}.spbc_group_header{margin:0 0 10px;padding:10px;border-bottom:1px solid #eee}.spbc_group_header>h3{margin:0}.spbc_group_header>h3>a{color:#1d2327;text-decoration:none}.spbc_wrapper_field{margin:0 15px 15px}.spbc_long_description__show:hover,.spbc_popup_tip--icon---show:hover{color:#aaa;cursor:pointer}.spbc_settings_description{font-size:9pt;color:#888}.spbc_settings_description select{display:inline;position:relative;transform:scale(.7);left:-50px}.spbc_tab-settings_general input[type=text]{min-width:255px;width:100%}.spbc_short_text_field input{min-width:70px!important;width:70px!important}.spbc_middle_text_field input{min-width:200px!important;width:200px!important}.spbc_long_text_field input[type=text]{min-width:200px;width:500px}.spbc_wrapper_field label{vertical-align:baseline}.spbc_wrapper_field h4{margin:10px 15px 5px}.spbc_wrapper_footer{margin:15px}#spbc_wrapper_error{margin:0;padding:5px}#spbc_wrapper_error h3,#spbc_wrapper_error h4{margin:5px}#showHideLink{display:inline-block;color:#777}.spbc__wrapper--center{margin:10px 0;text-align:center}.spbc_settings_banner{display:inline-block;margin:1em 0;vertical-align:top;text-align:center}.spbc_rate_block{border:1px dashed #666;width:400px;padding:.2em}#spbc_translate_plugin .spbc_button_rate{margin-bottom:10px}.spbc_button_rate{display:inline-block;text-align:center;vertical-align:middle;padding:12px 24px;border:1px solid #216298;border-radius:8px;background:#35a0f7;background:-webkit-gradient(linear,left top,left bottom,from(#35a0f7),to(#216298));background:-moz-linear-gradient(top,#35a0f7,#216298);background:linear-gradient(to bottom,#35a0f7,#216298);text-shadow:#153e5f 1px 1px 1px;font:bold 16px verdana;color:#fff;text-decoration:none}.spbc_button_rate:focus,.spbc_button_rate:hover{border:1px solid #297bbe;background:#40c0ff;background:-webkit-gradient(linear,left top,left bottom,from(#40c0ff),to(#2876b6));background:-moz-linear-gradient(top,#40c0ff,#2876b6);background:linear-gradient(to bottom,#40c0ff,#2876b6);color:#fff;text-decoration:none}.spbc_button_rate:active{background:#216298;background:-webkit-gradient(linear,left top,left bottom,from(#216298),to(#216298));background:-moz-linear-gradient(top,#216298,#216298);background:linear-gradient(to bottom,#216298,#216298)}#spbc_rate_plugin .spbc_button_rate:before{content:"\0000a0";display:inline-block;height:24px;width:24px;line-height:24px;margin:0 4px -6px -4px;position:relative;top:0;left:0;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACjElEQVRIie1UTWsTURQ9dzKpofQLobQFlxqENF1JG0GE6sKuRLDtTKaBkJUIRdwpba2g9ge48gMEUUyTbrUutFmk1X6Q7kxDgi1YUSmlpsGYiTXtuy7GCYnaSRu3PczAfe/dd8695z0ecIAKsFVK0DQNLpcL8Xi8KgHZalFRNWe7uyMs2+RtkBQIjQerU/k3uVceHhmdyed/8NbWFg8OXrlXDY+020JdXf2NQMB/yuE4hHw+j5yur1df7h9QvQMXpiKRHSEECyF4cvJlQVG149VwlZ1BX58fsn1H7e29+OhMd7cEAMyM6PTMNAgfFUWrJSIAQgCAYAKIAECABACABGFt7fPPaDRqjItVqyrqG5vGAn7/kMfTBYMIyGQyeD0VMZKYweYGM2ZjpnR+eWVl8V08fnYiNP6t1Jbzc3PzbNryP38stsiKqp0uWuTz+eBqd9/s6uo02vpdPTOXxZuZDB7cfwgQGa0TIEmS7nA4PhhDkgBgdXV1FkTzRYHCtjjS4XZ3mGQmSsdEhKbGRqhqPwRz0ZOlRKImGBy/FA4F31gd8tG2tjaZmf+VUybS2tpaNpfeTMsADu+2xxRw2O12ENFftpTG6XQat26PQZIIzEA2m/1SKBSGGXhhWZmiaifezs7yfhGdnmFF1TqtuM0OksvvlzMnPZ4mq+RkMoVsNlu83ImlxDqATxUFwqHg94aGhsc9PeeuNjc372pRMpnExsZX5HI5xBZjd3aEuBsOBTcs7TGherXaa9eHIqlUioUQltYIIXhkZPT5XnjL7qXi1Wpkm6w5nccGWlpanLJNlkGQyEw1Pui6rs8tLFx+9vTJq30JlKK/3ycRCQkSFZ8Dcwszi4lwUOylgwNUxC8cBKAS7hIWzwAAAABJRU5ErkJggg==") left center/100% 100% no-repeat}.spbc_rate_block_stars{margin:1em 0}.star-icon{color:#ddd;font-size:18px;position:relative}.star-icon.full:before{color:#fde16d;content:'\2605';position:absolute;left:0;text-shadow:0 0 2px rgba(0,0,0,.7)}.spbc_hint{color:#666}.spbc_hint_warning{font-size:17px;font-weight:600;text-align:center;color:#eb8f00}.spbc_hint--link{color:#aaa;text-decoration:underline;cursor:pointer}.spbc_auto_link,.spbc_manual_link{text-decoration:none;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;-webkit-appearance:none;white-space:nowrap;display:inline-block;margin:0;cursor:pointer}.spbc_hint--top_right{position:relative;float:right;top:0;right:10px}.spbc_auto_link{background:#ccc;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;border:1px solid #999;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc-links:visited,.spbc_auto_link:hover{color:#fff}.spbc_manual_link{background:#2ea2cc;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;border:1px solid #0074a2;-webkit-border-radius:3px;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_long_desc,.spbc_popup_tip--wrapper{min-width:80px;min-height:80px;max-width:500px;padding:10px;z-index:10}.spbc_manual_link:hover{color:#000}.spbc_dismiss{width:20px;height:20px;border-radius:5px}.spbc_long_desc{position:absolute;background:#5a5a5a;color:#fff}.spbc_long_desc p{color:#fff!important}i.animate-spin{-moz-animation:2s linear infinite spin;-o-animation:2s linear infinite spin;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin;display:inline-block;margin:25px;font-size:25px;line-height:20px;color:#78c8e6}@keyframes spin{to{transform:rotate(359deg)}}.spbc_long_desc__angle,.spbc_long_desc__angle_top_left{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);position:absolute;width:10px;height:10px;background:#5a5a5a}.spbc_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.spbc_long_desc__cancel:hover{color:#fff}.spbc_long_desc__angle{top:5px;left:-17px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__angle_top_left{top:-10px;left:-9px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__title{color:#78c8e6;margin:0}.spbc_long_desc__link{color:#78c8e6}.spbc_long_desc__link:hover{color:#8cdcfa}.spbc_long_desc h4{color:#50a0be;margin:10px 0 3px}.spbc_long_desc span{margin:0 0 0 10px;display:inline-block}.spbc_long_desc img{width:300px}.spbc_popup_tip--wrapper{position:absolute;background:#5a5a5a;color:#fff}.spbc_popup_tip--icon---cancel{position:absolute;top:0;right:5px;color:rgba(255,255,255,.5)}.spbc_popup_tip--icon---cancel:hover{color:#fff}.spbc_popup_tip--angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_popup_tip--title{color:#78c8e6;margin:0}.spbc_popup_tip--text{color:#fff!important}.spbc_log-wrapper{padding:5px;border:1px solid #000;width:98%;min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-results-log-module .panel-body,.spbc_log-wrapper .panel-body{height:100%;overflow-y:auto}.spbc_log-line{margin:0;padding:0 5px}.spbc_log-line:nth-child(odd){background:#d3d3d3}.spbc_log-block_header{margin:10px 0}.spbc_log-input--checkbox,.spbc_log-label--checkbox{width:auto}button.ct_support_link{border:none;background:0 0;color:#666;text-decoration:underline;cursor:pointer}#spbc-modal-content>*{display:block;width:100%}.spbc-popup-msg{width:98%;height:15px;text-align:center;padding:4px;border-radius:7px;position:relative;top:0;right:0;bottom:0;left:0;margin:auto}.popup--green{background:#dfd;color:#060;border:1px solid #060}.popup--red{background:#fdd;color:#600;border:1px solid #600}#spbcscan-results-log-module{min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-scanner-caption h4{margin:10px 0;font-size:14px}#spbcscan-results-log-caption p{font-size:13px;margin:0 0 6px}#spbcscan-scanner-caption{display:flex;flex-wrap:wrap;flex-direction:row-reverse}#spbcscan-scanner-caption .column:first-child{width:75%;flex:0 0 75%}#spbcscan-scanner-caption .column:last-child{width:25%;flex:0 0 25%;padding-right:10px;box-sizing:border-box}.spbc-scan-log-title{color:#1d2327;font-size:1.3em;margin:0 0 15px!important;font-weight:600} +.circle{border-radius:50%;align-items:center;justify-content:center;position:relative;background-color:#03A9F4;clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,50% 0,50% 50%,50% 50%)}.circle-inner{width:100%;height:100%;border-radius:50%;background:#f7f7f7;transform:scale(.7)}.circle--small{width:16px;height:16px}.circle--mid{width:30px;height:30px}.-animation--circle{animation:animation-circle 2s linear forwards}.-animation--30s{animation-duration:30s!important}.-animation--2min{animation-duration:120s!important}@keyframes animation-circle{12.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,0 0,50% 50%,50% 50%)}25%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 50%,0 50%,50% 50%,50% 50%)}37.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 100%,0 100%,50% 50%,50% 50%)}50%{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,50% 100%,50% 100%,50% 100%,50% 50%,50% 50%)}62.5%{clip-path:polygon(50% 0,100% 0,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,50% 50%,50% 50%)}75%{clip-path:polygon(50% 0,100% 0,100% 50%,100% 50%,100% 50%,100% 50%,100% 50%,50% 50%,50% 50%)}87.5%{clip-path:polygon(50% 0,100% 0,100% 0,100% 0,100% 0,100% 0,100% 0,50% 50%,50% 50%)}100%{clip-path:polygon(50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 50%,50% 50%)}}#confirmation-code--resend .circle{margin-left:5px;display:inline-block;vertical-align:text-bottom}.spbc---hidden,.spbc_waf_reason{display:none}#spbcTopWarning{margin-bottom:5px}#spbcTopWarning h3{margin:10px 0 5px}#spbcTopWarning h4{margin:10px}#spbcTopWarning h4 span{margin-top:5px}#spbc_gdpr_open_modal:hover{cursor:pointer}.spbc---gray{color:gray}.spbc---red{color:red}.spbc_bold{font-weight:800}.spbc---top{z-index:9999!important}.spbc_waf_reason_title{text-decoration:underline}.spbc_waf_reason_title:hover+.spbc_waf_reason{display:inline}.spbc_warning_counter{margin:0 5px;padding:0 7px;font-size:14px;height:23px;display:inline-block;text-align:center;border-radius:3px}.spbc_sub_setting{margin-left:30px!important}.spbc_sub2_setting{margin-left:60px!important}.spbc_affiliate_shortcode{width:inherit!important;min-width:inherit!important}.spbc_warning_counter--black{color:#fff;background-color:#000}.spbc_warning_counter--red{color:#000;background-color:red}.spbc_warning_counter--orange{color:#000;background-color:orange}.spbc_warning_counter--green{color:#000;background-color:green}.spbc_highlighted{outline-offset:5px;outline-color:red;outline-width:3px!important;outline-style:solid!important}.spbc_status_icon{vertical-align:text-bottom;margin:0 5px}.spbc_progressbar_counter{position:absolute;height:22px;width:100%;left:0;top:0;text-align:center}.spbc_progressbar_counter span{vertical-align:sub;line-height:22px;font-weight:600;font-size:18px}.spbc_preloader,.spbc_preloader_button{margin-left:5px;vertical-align:text-top;display:none}.spbc_compare_file_row_wrapper,.spbc_view_file_row,.spbc_view_file_row_wrapper{line-height:19px}.ui-progressbar-value{background-image:url(../images/pbar-ani.gif)!important}.spbc_preloader{width:20px}.spbc_preloader_button{height:15px}.spbc_spinner_big{display:block;margin:40px auto}.spbc_scan_result_row td{text-align:center}.spbc_scan_result_row td:nth-child(1){text-align:left}.spbc_scan_result_row td:nth-child(2){text-align:right}.spbc_scan_result_row td:last-child button{margin-left:3px}.spbc_view_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_view_file_row_wrapper:nth-child(even){background:#ddd}.spbc_view_file_row_num{display:inline-block;width:30px;margin:0 0 0 5px;border-right:1px solid #000}.spbc_view_file_row{display:inline;margin:0 0 0 5px;font-size:1em}.spbc_compare_file_headings{text-align:center;width:100%;display:inline-block;font-weight:700}.spbc_compare_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_compare_file_row_wrapper:nth-child(even){background:#ddd}.spbc_compare_file_row_num{display:inline-block;width:20px;box-shadow:-2px 0 0 0 #000,2px 0 0 0 #000;padding:0 1%}.spbc_compare_file_row{display:inline-block;width:45%;margin:0;padding:0 1%}table.spbc_table_general{width:100%;border:0;border-spacing:0;border-collapse:collapse}table.spbc_table_general td,table.spbc_table_general th{position:relative;border:1px solid #666;padding:2px 10px}.spbcShortText{display:inline-block;width:100%}.spbcFullText{display:none;position:absolute;top:0;background:rgba(150,150,150,.9);color:#fff;padding:7px;border:1px solid #333;border-radius:5px;z-index:20}div.pagination{margin:10px}ul.pagination{display:inline-block;margin:0}li.pagination{display:inline-block;margin-left:10px}span.current_page{font-size:1.3em;font-weight:600}.spbc_new{color:red;position:relative;font-size:10px;vertical-align:bottom;top:-8px}.spbc_wrapper_settings{margin:10px 0 0}.spbc_tabs_nav_wrapper{display:block;border-bottom:1px solid #ccc}.spbc_tab_nav{display:inline-block;margin:10px 0 0 .5em;padding:5px 10px;height:24px;border:1px solid #ccc;border-bottom:none;font-size:14px;line-height:24px;background:#e5e5e5;color:#555;cursor:pointer}.spbc_tab_nav:hover{background:#fff}.spbc_tab_nav--active{margin-bottom:-1px;border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.spbc_tab_nav--active:hover{background:#f1f1f1}.spbc_tab{display:none;margin:15px 0}.spbc_tab--active{display:block}.spbc_tab_fields_group{position:relative;min-width:255px;margin:10px auto;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fdfdfd}.spbc_group_header{margin:0 0 10px;padding:10px;border-bottom:1px solid #eee}.spbc_group_header>h3{margin:0}.spbc_group_header>h3>a{color:#1d2327;text-decoration:none}.spbc_wrapper_field{margin:0 15px 15px}.spbc_long_description__show:hover{color:#aaa;cursor:pointer}.spbc_settings_description{font-size:9pt;color:#888}.spbc_settings_description select{display:inline;position:relative;transform:scale(.7);left:-50px}.spbc_tab-settings_general input[type=text]{min-width:255px;width:100%}.spbc_short_text_field input{min-width:70px!important;width:70px!important}.spbc_middle_text_field input{min-width:200px!important;width:200px!important}.spbc_long_text_field input[type=text]{min-width:200px;width:500px}.spbc_wrapper_field label{vertical-align:baseline}.spbc_wrapper_field h4{margin:10px 15px 5px}.spbc_wrapper_footer{margin:15px}#spbc_wrapper_error{margin:0;padding:5px}#spbc_wrapper_error h3,#spbc_wrapper_error h4{margin:5px}#showHideLink{display:inline-block;margin-top:5px;color:#777}.spbc__wrapper--center{margin:10px 0;text-align:center}.spbc__show_more_logs{display:none}.spbc_settings_banner{display:inline-block;margin:1em 0;vertical-align:top;text-align:center}#spbc_translate_plugin{margin-left:10px}.spbc_rate_block{border:1px dashed #666;width:400px;padding:.2em}#spbc_translate_plugin .spbc_button_rate{margin-bottom:10px}.spbc_button_rate{display:inline-block;text-align:center;vertical-align:middle;padding:12px 24px;border:1px solid #216298;border-radius:8px;background:#35a0f7;background:-webkit-gradient(linear,left top,left bottom,from(#35a0f7),to(#216298));background:-moz-linear-gradient(top,#35a0f7,#216298);background:linear-gradient(to bottom,#35a0f7,#216298);text-shadow:#153e5f 1px 1px 1px;font:normal normal bold 16px verdana;color:#fff;text-decoration:none}.spbc_button_rate:focus,.spbc_button_rate:hover{border:1px solid #297bbe;background:#40c0ff;background:-webkit-gradient(linear,left top,left bottom,from(#40c0ff),to(#2876b6));background:-moz-linear-gradient(top,#40c0ff,#2876b6);background:linear-gradient(to bottom,#40c0ff,#2876b6);color:#fff;text-decoration:none}.spbc_button_rate:active{background:#216298;background:-webkit-gradient(linear,left top,left bottom,from(#216298),to(#216298));background:-moz-linear-gradient(top,#216298,#216298);background:linear-gradient(to bottom,#216298,#216298)}#spbc_rate_plugin .spbc_button_rate:before{content:"\0000a0";display:inline-block;height:24px;width:24px;line-height:24px;margin:0 4px -6px -4px;position:relative;top:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACjElEQVRIie1UTWsTURQ9dzKpofQLobQFlxqENF1JG0GE6sKuRLDtTKaBkJUIRdwpba2g9ge48gMEUUyTbrUutFmk1X6Q7kxDgi1YUSmlpsGYiTXtuy7GCYnaSRu3PczAfe/dd8695z0ecIAKsFVK0DQNLpcL8Xi8KgHZalFRNWe7uyMs2+RtkBQIjQerU/k3uVceHhmdyed/8NbWFg8OXrlXDY+020JdXf2NQMB/yuE4hHw+j5yur1df7h9QvQMXpiKRHSEECyF4cvJlQVG149VwlZ1BX58fsn1H7e29+OhMd7cEAMyM6PTMNAgfFUWrJSIAQgCAYAKIAECABACABGFt7fPPaDRqjItVqyrqG5vGAn7/kMfTBYMIyGQyeD0VMZKYweYGM2ZjpnR+eWVl8V08fnYiNP6t1Jbzc3PzbNryP38stsiKqp0uWuTz+eBqd9/s6uo02vpdPTOXxZuZDB7cfwgQGa0TIEmS7nA4PhhDkgBgdXV1FkTzRYHCtjjS4XZ3mGQmSsdEhKbGRqhqPwRz0ZOlRKImGBy/FA4F31gd8tG2tjaZmf+VUybS2tpaNpfeTMsADu+2xxRw2O12ENFftpTG6XQat26PQZIIzEA2m/1SKBSGGXhhWZmiaifezs7yfhGdnmFF1TqtuM0OksvvlzMnPZ4mq+RkMoVsNlu83ImlxDqATxUFwqHg94aGhsc9PeeuNjc372pRMpnExsZX5HI5xBZjd3aEuBsOBTcs7TGherXaa9eHIqlUioUQltYIIXhkZPT5XnjL7qXi1Wpkm6w5nccGWlpanLJNlkGQyEw1Pui6rs8tLFx+9vTJq30JlKK/3ycRCQkSFZ8Dcwszi4lwUOylgwNUxC8cBKAS7hIWzwAAAABJRU5ErkJggg==) left center no-repeat;background-size:100% 100%}.spbc_rate_block_stars{margin:1em 0}.star-icon{color:#ddd;font-size:18px;position:relative}.star-icon.full:before{color:#FDE16D;content:'\2605';position:absolute;left:0;text-shadow:0 0 2px rgba(0,0,0,.7)}.spbc_hint{color:#666}.spbc_hint_warning{font-size:17px;font-weight:600;text-align:center;color:#eb8f00}.spbc_hint--link{color:#aaa;text-decoration:underline;cursor:pointer}.spbc_auto_link,.spbc_manual_link{text-decoration:none;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;margin:0;display:inline-block;cursor:pointer}.spbc_hint--top_right{position:relative;float:right;top:0;right:10px}.spbc_auto_link{background:#ccc;border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_auto_link:hover{color:#fff}.spbc_manual_link{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_long_desc,.spbc_popup_tip--wrapper{min-height:80px;max-width:500px;padding:10px;z-index:10}.spbc_manual_link:hover{color:#000}.spbc_dismiss{width:20px;height:20px;border-radius:5px}.spbc-links:visited{color:#fff}.spbc_long_desc{position:absolute;background:#5a5a5a;min-width:80px;color:#fff}.spbc_long_desc p{color:#fff!important}i.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block;font-size:25px;line-height:20px;color:rgba(120,200,230,1);margin:25px}@keyframes spin{to{transform:rotate(359deg)}}.spbc_long_desc__angle,.spbc_long_desc__angle_top_left{width:10px;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);position:absolute;height:10px;background:#5a5a5a}.spbc_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.spbc_long_desc__cancel:hover{color:#fff}.spbc_long_desc__link,.spbc_long_desc__title{color:rgba(120,200,230,1)}.spbc_long_desc__angle{top:5px;left:-17px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__angle_top_left{top:-10px;left:-9px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__title{margin:0}.spbc_long_desc__link:hover{color:rgba(140,220,250,1)}.spbc_long_desc h4{color:#50a0be;margin:10px 0 3px}.spbc_long_desc span{margin:0 0 0 10px;display:inline-block}.spbc_long_desc img{width:300px}.spbc_popup_tip--icon---show:hover{color:#aaa;cursor:pointer}.spbc_popup_tip--wrapper{position:absolute;background:#5a5a5a;min-width:80px;color:#fff}.spbc_popup_tip--icon---cancel{position:absolute;top:0;right:5px;color:rgba(255,255,255,.5)}.spbc_popup_tip--icon---cancel:hover{color:#fff}.spbc_popup_tip--angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_popup_tip--title{color:rgba(120,200,230,1);margin:0}.spbc_popup_tip--text{color:#fff!important}tr:hover .spbc_hint--wrapper{display:none}.spbc_log-wrapper{padding:5px;border:1px solid #000;width:98%;min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}.spbc_log-wrapper .panel-body{height:100%;overflow-y:auto}.spbc_log-line{margin:0;padding:0 5px}.spbc_log-line:nth-child(odd){background:#d3d3d3}.spbc_log-block_header{margin:10px 0}.spbc_log-input--checkbox,.spbc_log-label--checkbox{width:auto}button.ct_support_link{border:none;background:0 0;color:#666;text-decoration:underline;cursor:pointer}#spbc-modal-content{text-align:center}#spbc-modal-content>*{display:block;width:100%}.spbc-popup-msg{width:98%;height:15px;text-align:center;padding:4px;border-radius:7px;position:relative;top:0;right:0;bottom:0;left:0;margin:auto}.popup--green{background:#DFD;color:#060;border:1px solid #060}.popup--red{background:#FDD;color:#600;border:1px solid #600}#spbcscan-results-log-module{min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-results-log-module .panel-body{height:100%;overflow-y:auto}#spbcscan-scanner-caption h4{margin:10px 0;font-size:14px}#spbcscan-results-log-caption p{font-size:13px;margin:0 0 6px}#spbcscan-scanner-caption{display:flex;flex-wrap:wrap;flex-direction:row-reverse}#spbcscan-scanner-caption .column:first-child{width:75%;flex:0 0 75%}#spbcscan-scanner-caption .column:last-child{width:25%;flex:0 0 25%;padding-right:10px;box-sizing:border-box}.spbc-scan-log-title{color:#1d2327;font-size:1.3em;margin:0 0 15px!important;font-weight:600} \ No newline at end of file diff --git a/css/src/spbc-admin.css b/css/src/spbc-admin.css index a8460e615..90ad57d2c 100644 --- a/css/src/spbc-admin.css +++ b/css/src/spbc-admin.css @@ -126,4 +126,12 @@ span.red_dot{ border-radius: 50% !important; display: inline-block !important; margin-left: 5px !important; +} + +#spbct-upload-checker-details { + overflow-y: scroll; + height: 150px; +} +#spbct-upload-checker-details li:nth-child(2n+1) { + background: #d3d3d3; } \ No newline at end of file diff --git a/lib/CleantalkSP/SpbctWP/Firewall/WAF.php b/lib/CleantalkSP/SpbctWP/Firewall/WAF.php index 585752875..92d0ec622 100644 --- a/lib/CleantalkSP/SpbctWP/Firewall/WAF.php +++ b/lib/CleantalkSP/SpbctWP/Firewall/WAF.php @@ -348,11 +348,11 @@ public static function wafFileCheckModulesCheck( // Output the result show_message('  ' . __('Checked files:', 'security-malware-firewall')); $overall_result = true; + $details = '
'; + $details .= '
    '; foreach ( $results as $path => $result ) { if ( ! empty($result['error']) ) { - show_message( - '  Error occurred while checking file ' . $path . ': ' . $result['error'] - ); + $details .= '
  •   Error occurred while checking file ' . $path . ': ' . $result['error'] . "
  • "; continue; } @@ -360,8 +360,11 @@ public static function wafFileCheckModulesCheck( // Cutting useless path prefix $display_path = preg_replace('#^.wp-content.upgrade[\\\\].+?[\\\\]#', '', $path); - show_message("    $display_path: {$result['status']}"); + $details .= "
  •     $display_path: {$result['status']}
  • "; } + $details .= '
'; + $details .= '
'; + show_message($details); // Output result message if ( $overall_result ) { From bd636cfd5d608ec52a910a67565e8425170cc3d7 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Thu, 23 Mar 2023 17:43:32 +0500 Subject: [PATCH 21/28] Fix. Do not glue spbc dialog rows on view code. --- js/spbc-settings_tab--scanner.min.js | 2 +- js/spbc-settings_tab--scanner.min.js.map | 2 +- js/src/spbc-settings_tab--scanner.js | 27 ++++++++++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/js/spbc-settings_tab--scanner.min.js b/js/spbc-settings_tab--scanner.min.js index f0ff6386b..9d0ce12fb 100644 --- a/js/spbc-settings_tab--scanner.min.js +++ b/js/spbc-settings_tab--scanner.min.js @@ -1,2 +1,2 @@ -function spbc_popup_tip___show(e){function s(e){void 0!==e&&(0!=jQuery(e.target).parent(".spbc_popup_tip--wrapper").length&&!jQuery(e.target).hasClass("spbc_popup_tip--icon---cancel")||jQuery(e.target).hasClass("spbc_popup_tip--icon---show"))||(jQuery(".spbc_popup_tip--wrapper").hide(),jQuery(document).off("click",s))}var n=e.attr("spbc_tip_title")||null,o=e.attr("spbc_tip_text")||null,t=(s(),e.after("
"),jQuery(".spbc_popup_tip--wrapper"));t.empty().append("
").css({top:e.position().top-2,left:e.position().left+25}),t.append("").append("

"+n+"

").append("

"+o+"

"),jQuery(document).on("click",s),e.parents("tr").on("mouseout",s)}function spbc_scanner_button_file_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_view",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_analysis_log_delete_from_log(e){var e=jQuery(e),s={action:"spbc_scanner_analysis_log_delete_from_log",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:window.location.reload(),errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_page_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_page_view",page_url:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}},n=jQuery("#wpwrap"),o=jQuery("#spbc_dialog"),t=(o.dialog({modal:!0,title:"Loading..",position:{my:"center top",at:"center top+100px",of:window},width:n.width()/100*90,show:{effect:"blind",duration:500},draggable:!1,resizable:!1,closeText:"X",classes:{"ui-dialog":"spbc---top"},open:function(e,s){e.target.style.overflow="auto",jQuery("#spbc_dialog").height(document.documentElement.clientHeight/100*25)},beforeClose:function(e,s){document.body.style.overflow="auto",jQuery("#spbc_dialog").empty()}}),o.append('Wait for downloading'),jQuery("#spbc_file_view_preloader")),n=4e-4*n.width();t.height(128*n),t.width(128*n),t.css({left:o.width()/2-128*n/2}),t.css({top:o.height()/2-128*n/2}),spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonView_callback(e){var s,n=jQuery("#spbc_dialog");jQuery("#spbc_file_view_preloader").css({display:"none"}),n.dialog({title:"Loaded: "+e.file_path});for(s in e.file)n.append('
%s

%s


'.printf(s,e.file[s]));var o=19*Object.keys(e.file).length<76?76:19*Object.keys(e.file).length,t=document.documentElement.clientHeight/100*75,a=o%s

%s


':a).printf(e,s.file[e]));jQuery("#spbc_dialog").append(a.printf("","")),c=[1,2];break}jQuery("#spbc_dialog div").last().remove();let p=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,i=document.documentElement.clientHeight/100*75,l=p{};if(1==o.success){console.log(o);var t,a='
%s

%s


',c=[];for(t in o.weak_spots=JSON.parse(o.weak_spots),o.weak_spots)c=c.concat(Object.keys(o.weak_spots[t]));var r,c=[...new Set(c)].sort(),p=new Map(Object.entries(o.weak_spots.CRITICAL));for(r in c){var i=+c[r];for(let n=i-2;n<=2+i;n++)if(void 0!==o.file[n]){var l=i===n;let e,s;e=l?'
%s

%s


':a,s=l?e.printf(n,p.get(c[r])):e.printf(n,o.file[n]),jQuery("#spbc_dialog").append(s)}jQuery("#spbc_dialog").append(a.printf("","")),jQuery("#spbc_dialog div").last().remove()}}else jQuery("#spbc_dialog").append('
%s
'.printf(o.content)),n=()=>{document.location.reload()};let _=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,u=document.documentElement.clientHeight/100*75,b=_{window.location.reload()},errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_file_compare_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_compare",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonFileCompare_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonFileCompare_callback(s,e,n){console.log("FILE_COMPARED");var o='

%s

%s

%s


';jQuery("#spbc_dialog").append(o.printf('Modified',"Line",'Original'));for(var t=1;void 0!==s.file[t]||void 0!==s.file_original[t];t++)if(void 0===s.file[t]&&(s.file[t]=""),void 0===s.file_original[t]&&(s.file_original[t]=""),-1!=s.difference.indexOf(t)){for(let e=t-2;e<=t+2;e++)void 0!==s.file[e]&&void 0!==s.file_original[t]&&jQuery("#spbc_dialog").append((t===e?'

%s

%s

%s


':o).printf(s.file[e]||"",e,s.file_original[e]||""));jQuery("#spbc_dialog").append(o.printf("","",""))}var a=19*jQuery("#spbc_dialog div").length+19,c=document.documentElement.clientHeight/100*75,r=a{document.getElementById("spbc_scanner__last_scan_info").innerText=e.data}})}jQuery(document).ready(function(){spbc_tbl__bulk_actions__listen(),spbc_tbl__row_actions__listen(),spbc_tbl__pagination__listen(),spbc_tbl__sort__listen(),spbcStartShowHide(),jQuery("#spbc_scaner_progress_bar").progressbar({value:0,create:function(e,s){e.target.style.position="relative",e.target.style.marginBottom="12px"},change:function(e,s){jQuery(".spbc_progressbar_counter span").text(jQuery(e.target).progressbar("option","value")+" %")}}),jQuery("#spbc_scan_accordion").accordion({header:"h3",heightStyle:"content",collapsible:!0,active:!1,activate:function(e,s){0===s.oldPanel.length&&0===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom spbc-overflow--visible")},beforeActivate:function(e,s){1===s.oldPanel.length&&1===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom")}}),window.spbc_scanner=new spbcMalwareScanner({settings:spbcScaner.settings,states:spbcScaner.states,button:jQuery("#spbc_perform_scan"),spinner:jQuery("#spbc_perform_scan").next(),callback:null,progress_overall:jQuery("#spbc_scaner_progress_overall"),progressbar:jQuery("#spbc_scaner_progress_bar"),progressbar_text:jQuery(".spbc_progressbar_counter span"),wrapper:document.getElementsByClassName("spbc_unchecked_file_list"),warnings:{long_scan:jQuery(".spbc_hint_warning__long_scan"),outdated:jQuery(".spbc_hint_warning__outdated")}}),jQuery(document).on("click",".spbc_popup_tip--icon---show",function(){spbc_popup_tip___show(jQuery(this))}),jQuery("#spbc_perform_scan").on("click",function(){jQuery("#spbcscan-results-log-module").remove(),spbc_scanner.actionControl(),jQuery(".spbc_log-wrapper .panel-body").length||jQuery(".spbc_log-wrapper").append('
'),jQuery(".spbc_log-wrapper").resizable({handles:"n, s",containment:"document"})}),jQuery("#spbcscan-results-log-module").resizable({handles:"n, s",containment:"document"}),jQuery("#spbc_scanner_clear").on("click",function(){confirm("Do you wanna clear the table with file scan results?")&&(console.log("CLEAR"),spbc_sendAJAXRequest({action:"spbc_scanner_clear"},{type:"GET",successCallback:function(){document.location=document.location},complete:null,errorOutput:null,context:this,timeout:4e4}))}),jQuery("#spbc_scanner_save_to_pdf").on("click",function(){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_save_to_pdf",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"blob"},success:function(o){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_get_pdf_file_name",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"text"},success:function(e){var s=new Blob([o]),n=document.createElement("a");n.href=window.URL.createObjectURL(s),n.download=e.data,n.click()}})}})})}); +function spbc_popup_tip___show(e){function s(e){void 0!==e&&(0!=jQuery(e.target).parent(".spbc_popup_tip--wrapper").length&&!jQuery(e.target).hasClass("spbc_popup_tip--icon---cancel")||jQuery(e.target).hasClass("spbc_popup_tip--icon---show"))||(jQuery(".spbc_popup_tip--wrapper").hide(),jQuery(document).off("click",s))}var o=e.attr("spbc_tip_title")||null,t=e.attr("spbc_tip_text")||null,n=(s(),e.after("
"),jQuery(".spbc_popup_tip--wrapper"));n.empty().append("
").css({top:e.position().top-2,left:e.position().left+25}),n.append("").append("

"+o+"

").append("

"+t+"

"),jQuery(document).on("click",s),e.parents("tr").on("mouseout",s)}function spbc_scanner_button_file_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_view",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_analysis_log_delete_from_log(e){var e=jQuery(e),s={action:"spbc_scanner_analysis_log_delete_from_log",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:window.location.reload(),errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_page_view_event(e){var e=jQuery(e),s={action:"spbc_scanner_page_view",page_url:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonView_callback,errorOutput:function(e){spbcModal.open().putError(e)}},o=jQuery("#wpwrap"),t=jQuery("#spbc_dialog"),n=(t.dialog({modal:!0,title:"Loading..",position:{my:"center top",at:"center top+100px",of:window},width:o.width()/100*90,show:{effect:"blind",duration:500},draggable:!1,resizable:!1,closeText:"X",classes:{"ui-dialog":"spbc---top"},open:function(e,s){e.target.style.overflow="auto",jQuery("#spbc_dialog").height(document.documentElement.clientHeight/100*25)},beforeClose:function(e,s){document.body.style.overflow="auto",jQuery("#spbc_dialog").empty()}}),t.append('Wait for downloading'),jQuery("#spbc_file_view_preloader")),o=4e-4*o.width();n.height(128*o),n.width(128*o),n.css({left:t.width()/2-128*o/2}),n.css({top:t.height()/2-128*o/2}),spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonView_callback(e){var s,o=jQuery("#spbc_dialog");o.empty(),jQuery("#spbc_file_view_preloader").css({display:"none"});for(s in e.file)o.append('
%s

%s


'.printf(s,e.file[s]));let t=19*Object.keys(e.file).length<76?76:19*Object.keys(e.file).length,n=document.documentElement.clientHeight/100*75,a=t%s

%s


':a).printf(e,s.file[e]));jQuery("#spbc_dialog").append(a.printf("",""))}jQuery("#spbc_dialog div").last().remove();let i=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,p=document.documentElement.clientHeight/100*75,l=i{};if(1==t.success){console.log(t);var n,a='
%s

%s


',c=[];for(n in t.weak_spots=JSON.parse(t.weak_spots),t.weak_spots)c=c.concat(Object.keys(t.weak_spots[n]));var r,c=[...new Set(c)].sort(),i=new Map(Object.entries(t.weak_spots.CRITICAL));for(r in c){var p=+c[r];for(let o=p-2;o<=2+p;o++)if(void 0!==t.file[o]){var l=p===o;let e,s;e=l?'
%s

%s


':a,s=l?e.printf(o,i.get(c[r])):e.printf(o,t.file[o]),jQuery("#spbc_dialog").append(s)}jQuery("#spbc_dialog").append(a.printf("","")),jQuery("#spbc_dialog div").last().remove()}}else jQuery("#spbc_dialog").append('
%s
'.printf(t.content)),o=()=>{document.location.reload()};let _=19*jQuery("#spbc_dialog div").length<76?76:19*jQuery("#spbc_dialog div").length,d=document.documentElement.clientHeight/100*75,u=_{window.location.reload()},errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scanner_button_file_compare_event(e){var e=jQuery(e),s={action:"spbc_scanner_file_compare",file_id:e.parents(".row-actions").attr("uid")},e={spinner:e.parent().siblings(".tbl-preloader--tiny"),callback:spbc_scannerButtonFileCompare_callback,errorOutput:function(e){spbcModal.open().putError(e)}};spbc_sendAJAXRequest(s,e)}function spbc_scannerButtonFileCompare_callback(s,e,o){console.log("FILE_COMPARED");var t='

%s

%s

%s


';jQuery("#spbc_dialog").append(t.printf('Modified',"Line",'Original'));for(var n=1;void 0!==s.file[n]||void 0!==s.file_original[n];n++)if(void 0===s.file[n]&&(s.file[n]=""),void 0===s.file_original[n]&&(s.file_original[n]=""),-1!=s.difference.indexOf(n)){for(let e=n-2;e<=n+2;e++)void 0!==s.file[e]&&void 0!==s.file_original[n]&&jQuery("#spbc_dialog").append((n===e?'

%s

%s

%s


':t).printf(s.file[e]||"",e,s.file_original[e]||""));jQuery("#spbc_dialog").append(t.printf("","",""))}var a=19*jQuery("#spbc_dialog div").length+19,c=document.documentElement.clientHeight/100*75,r=a{document.getElementById("spbc_scanner__last_scan_info").innerText=e.data}})}jQuery(document).ready(function(){spbc_tbl__bulk_actions__listen(),spbc_tbl__row_actions__listen(),spbc_tbl__pagination__listen(),spbc_tbl__sort__listen(),spbcStartShowHide(),jQuery("#spbc_scaner_progress_bar").progressbar({value:0,create:function(e,s){e.target.style.position="relative",e.target.style.marginBottom="12px"},change:function(e,s){jQuery(".spbc_progressbar_counter span").text(jQuery(e.target).progressbar("option","value")+" %")}}),jQuery("#spbc_scan_accordion").accordion({header:"h3",heightStyle:"content",collapsible:!0,active:!1,activate:function(e,s){0===s.oldPanel.length&&0===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom spbc-overflow--visible")},beforeActivate:function(e,s){1===s.oldPanel.length&&1===s.oldHeader.length&&jQuery("#spbc_scan_accordion").accordion("option","classes.ui-accordion-content","ui-corner-bottom")}}),window.spbc_scanner=new spbcMalwareScanner({settings:spbcScaner.settings,states:spbcScaner.states,button:jQuery("#spbc_perform_scan"),spinner:jQuery("#spbc_perform_scan").next(),callback:null,progress_overall:jQuery("#spbc_scaner_progress_overall"),progressbar:jQuery("#spbc_scaner_progress_bar"),progressbar_text:jQuery(".spbc_progressbar_counter span"),wrapper:document.getElementsByClassName("spbc_unchecked_file_list"),warnings:{long_scan:jQuery(".spbc_hint_warning__long_scan"),outdated:jQuery(".spbc_hint_warning__outdated")}}),jQuery(document).on("click",".spbc_popup_tip--icon---show",function(){spbc_popup_tip___show(jQuery(this))}),jQuery("#spbc_perform_scan").on("click",function(){jQuery("#spbcscan-results-log-module").remove(),spbc_scanner.actionControl(),jQuery(".spbc_log-wrapper .panel-body").length||jQuery(".spbc_log-wrapper").append('
'),jQuery(".spbc_log-wrapper").resizable({handles:"n, s",containment:"document"})}),jQuery("#spbcscan-results-log-module").resizable({handles:"n, s",containment:"document"}),jQuery("#spbc_scanner_clear").on("click",function(){confirm("Do you wanna clear the table with file scan results?")&&(console.log("CLEAR"),spbc_sendAJAXRequest({action:"spbc_scanner_clear"},{type:"GET",successCallback:function(){document.location=document.location},complete:null,errorOutput:null,context:this,timeout:4e4}))}),jQuery("#spbc_scanner_save_to_pdf").on("click",function(){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_save_to_pdf",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"blob"},success:function(t){jQuery.ajax({url:spbcSettings.ajaxurl,type:"POST",data:{action:"spbc_scanner_get_pdf_file_name",security:spbcSettings.ajax_nonce,no_cache:Math.random()},xhrFields:{responseType:"text"},success:function(e){var s=new Blob([t]),o=document.createElement("a");o.href=window.URL.createObjectURL(s),o.download=e.data,o.click()}})}})})}); //# sourceMappingURL=spbc-settings_tab--scanner.min.js.map diff --git a/js/spbc-settings_tab--scanner.min.js.map b/js/spbc-settings_tab--scanner.min.js.map index 7267e8cf9..bbf8a5157 100644 --- a/js/spbc-settings_tab--scanner.min.js.map +++ b/js/spbc-settings_tab--scanner.min.js.map @@ -1 +1 @@ -{"version":3,"file":"spbc-settings_tab--scanner.min.js","sources":["spbc-settings_tab--scanner.js"],"sourcesContent":["function spbc_popup_tip___show(show_icon){\n\n\tvar tip_title = show_icon.attr('spbc_tip_title') || null;\n\tvar\ttip_text = show_icon.attr('spbc_tip_text') || null;\n\tvar remove_desc_func = function(e){\n\n\t\tif(\n\t\t\ttypeof e === 'undefined' ||\n\t\t\t(\n\t\t\t\t(jQuery(e.target).parent('.spbc_popup_tip--wrapper').length == 0 || jQuery(e.target).hasClass('spbc_popup_tip--icon---cancel')) &&\n\t\t\t\t!jQuery(e.target).hasClass('spbc_popup_tip--icon---show')\n\t\t\t)\n\t\t){\n\t\t\tjQuery('.spbc_popup_tip--wrapper').hide();\n\t\t\tjQuery(document).off('click', remove_desc_func);\n\t\t}\n\t};\n\n\tremove_desc_func();\n\n\tshow_icon.after(\"
\");\n\n\tvar obj = jQuery('.spbc_popup_tip--wrapper');\n\n\tobj.empty()\n\t\t.append(\"
\")\n\t\t.css({\n\t\t\ttop: show_icon.position().top - 2,\n\t\t\tleft: show_icon.position().left + 25\n\t\t});\n\tobj.append(\"\")\n\t\t.append(\"

\" + tip_title + \"

\")\n\t\t.append(\"

\" + tip_text + \"

\");\n\n\tjQuery(document).on('click', remove_desc_func);\n\tshow_icon.parents('tr').on('mouseout', remove_desc_func);\n}\n\nfunction spbc_scanner_button_file_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\n/**\n * Delete file from analysis log\n */\nfunction spbc_scanner_analysis_log_delete_from_log(obj) {\n\tconst self = jQuery(obj);\n\tconst data = {\n\t\taction: 'spbc_scanner_analysis_log_delete_from_log',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: window.location.reload(),\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\n\tlet wp_wrap = jQuery('#wpwrap')\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tdialog_window.dialog({\n\t\tmodal:true,\n\t\ttitle: 'Loading..',\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(wp_wrap.width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: false,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').height((document.documentElement.clientHeight) / 100 * 25);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t})\n\n\tdialog_window.append('\"Wait')\n\n\tlet spinner = jQuery('#spbc_file_view_preloader')\n\tlet size_multiplier = (wp_wrap.width() * 0.0004)\n\n\tspinner.height(128 * size_multiplier)\n\tspinner.width(128 * size_multiplier)\n\tspinner.css({left: dialog_window.width()/2 - (128 * size_multiplier / 2)})\n\tspinner.css({top: dialog_window.height()/2 - (128 * size_multiplier / 2)})\n\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonView_callback(result){\n\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tjQuery('#spbc_file_view_preloader').css({display:'none'})\n\n\tdialog_window.dialog({title: ('Loaded: ' + result.file_path)})\n\n\tlet row_template = '
%s

%s


';\n\n\tfor(let row in result.file){\n\t\tdialog_window.append(row_template.printf(row, result.file[row]));\n\t}\n\n\tlet content_height = Object.keys(result.file).length * 19 < 76 ? 76 : Object.keys(result.file).length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'hidden' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tdialog_window.css({\n\t\theight: height,\n\t\toverflow: overflow\n\t})\n\n\tconsole.log('FILE_VIEWED');\n}\n\nfunction spbc_scanner_button_file_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBadFile_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parent().attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBad_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonViewBadFile_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE_FILE');\n\tconsole.log(arguments);\n\n\tvar row_template = '
%s

%s


',\n\t\trow_template_bad = '
%s

%s


',\n\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\n\tfor(let str_num in str_nums){\n\n\t\tlet row = +str_nums[str_num],\n\t\t\tdisplay_depth = 2;\n\n\t\t// Display only existing lines of file\n\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\tjQuery('#spbc_dialog').append((row === curr_row ? row_template_bad : row_template).printf(curr_row, result.file[curr_row]));\n\t\t\t}\n\t\t}\n\n\t\t// Placing an empty string between results\n\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\t\tif (str_nums = [1,2]) break;\n\t}\n\n\t // Removing last empty string\n\tjQuery('#spbc_dialog div').last().remove();\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t});\n}\n\nfunction spbc_scannerButtonViewBad_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE');\n\n\tconsole.log(arguments);\n\n\tlet afterClose = () => {};\n\n\tif ( result.success == true ) {\n\t\tconsole.log(result);\n\t\tvar row_template = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\trow_template_bad = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\n\t\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\t\t//get a map of bad strings\n\t\tlet bad_strings_map = new Map(Object.entries(result.weak_spots.CRITICAL)) //TODO: Probably there can get something else except CRITICAL in the future\n\t\tfor(let str_num in str_nums){\n\n\t\t\tlet row = +str_nums[str_num],\n\t\t\t\tdisplay_depth = 2;\n\n\t\t\t// Display only existing lines of file\n\t\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\t\tlet is_bad_string = (row === curr_row)\n\t\t\t\t\tlet unformatted_row\n\t\t\t\t\tlet highlited_row\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\tunformatted_row = row_template_bad\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunformatted_row = row_template\n\t\t\t\t\t}\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, bad_strings_map.get(str_nums[str_num]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, result.file[curr_row]);\n\t\t\t\t\t}\n\t\t\t\t\tjQuery('#spbc_dialog').append(highlited_row);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Placing an empty string between results\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\n\t\t\t// Removing last empty string\n\t\t\tjQuery('#spbc_dialog div').last().remove();\n\t\t}\n\t} else {\n\t\tlet wrapperElement = '
%s
'\n\t\tjQuery('#spbc_dialog').append(wrapperElement.printf(result.content));\n\t\tafterClose = () => {document.location.reload();};\n\t}\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\theight = 'auto',\n \t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll';\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t\tclose: afterClose,\n\t});\n}\n\nfunction spbc_scanner_button_page_approve(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_approve',\n\t\tpage_url: self.parent().attr('uid'),\n\t\tpage_id: self.parent().parent().siblings('.page_id').text(),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: () => {\n\t\t\twindow.location.reload();\n\t\t},\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_file_compare_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_compare',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonFileCompare_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonFileCompare_callback(result, data, params){\n\n\tconsole.log('FILE_COMPARED');\n\n\tlet row_template = '

%s

%s

%s


';\n\tlet row_template_bad = '

%s

%s

%s


';\n\n\tjQuery('#spbc_dialog').append(row_template.printf('Modified', 'Line', 'Original'));\n\n\tfor(var row=1, prev = false, next = false; typeof result.file[row] != 'undefined' || typeof result.file_original[row] != 'undefined'; row++){\n\n\t\tif(typeof result.file[row] == 'undefined') result.file[row] = '';\n\t\tif(typeof result.file_original[row] == 'undefined') result.file_original[row] = '';\n\n\t\t// Display only existing lines of file\n\t\tif(result.difference.indexOf(row) != -1){\n\t\t\tfor(let display_depth = 2, curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' && typeof result.file_original[row] !== 'undefined') {\n\t\t\t\t\tjQuery('#spbc_dialog').append(\n\t\t\t\t\t\t(row === curr_row ? row_template_bad : row_template).printf(\n\t\t\t\t\t\t\tresult.file[curr_row] ? result.file[curr_row] : '',\n\t\t\t\t\t\t\tcurr_row,\n\t\t\t\t\t\t\tresult.file_original[curr_row] ? result.file_original[curr_row] : ''\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', '', ''));\n\t\t}\n\t}\n\n\tvar content_height = jQuery('#spbc_dialog div').length * 19 + 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\theight: height,\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: true,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t}\n\t});\n}\n\nfunction spbc_scanner__reload_scan_info() {\n\tjQuery('.spbc_hint__last_scan_title').text(spbcScaner.look_below_for_scan_res);\n\tconst data = {\n\t\taction: 'spbc_scanner__last_scan_info'\n\t};\n\tconst params = {\n\t\tcallback: (result) => {\n\t\t\tdocument.getElementById('spbc_scanner__last_scan_info').innerText = result.data;\n\t\t}\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\njQuery(document).ready(function(){\n\n\t// EVENT HADLING\n\tspbc_tbl__bulk_actions__listen(); // Table. Row bulk handler\n\tspbc_tbl__row_actions__listen(); // Table. Row actions handler\n\tspbc_tbl__pagination__listen(); // Table. Pagination handler\n\tspbc_tbl__sort__listen(); // Table. Sort handler\n\n\tspbcStartShowHide();\n\n\t// Preparing progressbar\n\tjQuery('#spbc_scaner_progress_bar').progressbar({\n\t\tvalue: 0,\n\t\tcreate: function( event, ui ) {\n\t\t\tevent.target.style.position = 'relative';\n\t\t\tevent.target.style.marginBottom = '12px';\n\t\t},\n\t\tchange: function(event, ui){\n\t\t\tjQuery('.spbc_progressbar_counter span').text(jQuery(event.target).progressbar('option', 'value') + ' %');\n\t\t},\n\t});\n\n\t// Preparing accordion\n\tjQuery('#spbc_scan_accordion').accordion({\n\t\theader: \"h3\",\n\t\theightStyle: 'content',\n\t\tcollapsible: true,\n\t\tactive: false,\n\t\tactivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 0 && ui.oldHeader.length === 0 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom spbc-overflow--visible\");\n\t\t},\n\t\tbeforeActivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 1 && ui.oldHeader.length === 1 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom\");\n\t\t}\n\t});\n\n\t// Init scanner plugin\n\twindow.spbc_scanner = new spbcMalwareScanner({\n\t\tsettings: spbcScaner.settings,\n\t\tstates: spbcScaner.states,\n\t\tbutton: jQuery('#spbc_perform_scan'),\n\t\tspinner: jQuery('#spbc_perform_scan').next(),\n\t\tcallback: null,\n\t\tprogress_overall: jQuery('#spbc_scaner_progress_overall'),\n\t\tprogressbar: jQuery('#spbc_scaner_progress_bar'),\n\t\tprogressbar_text: jQuery('.spbc_progressbar_counter span'),\n\t\twrapper: document.getElementsByClassName('spbc_unchecked_file_list'),\n\t\twarnings: {\n\t\t long_scan: jQuery('.spbc_hint_warning__long_scan'),\n outdated: jQuery('.spbc_hint_warning__outdated')\n }\n\t});\n\n\tjQuery(document).on('click', '.spbc_popup_tip--icon---show', function(){\n\t\tspbc_popup_tip___show( jQuery( this ) );\n\t});\n\n\tjQuery('#spbc_perform_scan').on('click', function(){\n\t\tjQuery('#spbcscan-results-log-module').remove();\n\t\tspbc_scanner.actionControl();\n\n\t\tif (!jQuery(\".spbc_log-wrapper .panel-body\").length) {\n\t\t\tjQuery(\".spbc_log-wrapper\").append('
');\n\t\t}\n\n\t\tjQuery(\".spbc_log-wrapper\").resizable({\n\t\t handles: 'n, s',\n\t containment: 'document',\n\t\t});\n\t});\n\n\tjQuery(\"#spbcscan-results-log-module\").resizable({\n\t handles: 'n, s',\n containment: 'document',\n\t});\n\n\t//DEBUG\n\t// Clear table\n\tjQuery('#spbc_scanner_clear').on('click', function(){\n\n\t\tif( ! confirm('Do you wanna clear the table with file scan results?') )\n\t\t\treturn;\n\n\t\tconsole.log('CLEAR');\n\n\t\tspbc_sendAJAXRequest(\n\t\t\t{ action: 'spbc_scanner_clear', },\n\t\t\t{\n\t\t\t\ttype: 'GET',\n\t\t\t\tsuccessCallback: function(){ document.location = document.location },\n\t\t\t\tcomplete: null,\n\t\t\t\terrorOutput: null,\n\t\t\t\tcontext: this,\n\t\t\t\ttimeout: 40000\n\t\t\t},\n\t\t);\n\t});\n\n\tjQuery('#spbc_scanner_save_to_pdf').on('click', function(){\n\t\tjQuery.ajax({\n\t\t\turl: spbcSettings.ajaxurl,\n\t\t\ttype: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'spbc_scanner_save_to_pdf',\n\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\tno_cache: Math.random()\n\t\t\t},\n\t\t\txhrFields: {\n\t\t\t\tresponseType: 'blob'\n\t\t\t},\n\t\t\tsuccess: function(data) {\n\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\turl: spbcSettings.ajaxurl,\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\taction: 'spbc_scanner_get_pdf_file_name',\n\t\t\t\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\t\t\t\tno_cache: Math.random()\n\t\t\t\t\t\t},\n\t\t\t\t\t\txhrFields: {\n\t\t\t\t\t\t\tresponseType: 'text'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function(filename) {\n\t\t\t\t\t\t\tlet blob=new Blob([data]);\n\t\t\t\t\t\t\tlet link=document.createElement('a');\n\t\t\t\t\t\t\tlink.href=window.URL.createObjectURL(blob);\n\t\t\t\t\t\t\tlink.download=filename.data;\n\t\t\t\t\t\t\tlink.click();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t});\n\t});\n});"],"names":["spbc_popup_tip___show","show_icon","remove_desc_func","e","jQuery","target","parent","length","hasClass","hide","document","off","tip_title","attr","tip_text","obj","after","empty","append","css","top","position","left","on","parents","spbc_scanner_button_file_view_event","self","data","action","file_id","params","spinner","siblings","callback","spbc_scannerButtonView_callback","errorOutput","msg","spbcModal","open","putError","spbc_sendAJAXRequest","spbc_scanner_analysis_log_delete_from_log","window","location","reload","spbc_scanner_button_page_view_event","page_url","wp_wrap","dialog_window","dialog","modal","title","my","at","of","width","show","effect","duration","draggable","resizable","closeText","classes","ui-dialog","event","ui","style","overflow","height","documentElement","beforeClose","body","size_multiplier","result","let","row","display","file_path","file","printf","content_height","Object","keys","visible_height","console","log","spbc_scanner_button_file_view_bad_event","spbc_scannerButtonViewBadFile_callback","spbc_scanner_button_page_view_bad_event","spbc_scannerButtonViewBad_callback","arguments","severity","str_num","row_template","str_nums","weak_spots","JSON","parse","concat","Set","sort","curr_row","last","remove","afterClose","success","bad_strings_map","Map","entries","CRITICAL","is_bad_string","unformatted_row","highlited_row","get","content","close","spbc_scanner_button_page_approve","page_id","text","spbc_scanner_button_file_compare_event","spbc_scannerButtonFileCompare_callback","file_original","difference","indexOf","spbc_scanner__reload_scan_info","spbcScaner","look_below_for_scan_res","getElementById","innerText","ready","spbc_tbl__bulk_actions__listen","spbc_tbl__row_actions__listen","spbc_tbl__pagination__listen","spbc_tbl__sort__listen","spbcStartShowHide","progressbar","value","create","marginBottom","change","accordion","header","heightStyle","collapsible","active","activate","oldPanel","oldHeader","beforeActivate","spbc_scanner","spbcMalwareScanner","settings","states","button","next","progress_overall","progressbar_text","wrapper","getElementsByClassName","warnings","long_scan","outdated","this","actionControl","handles","containment","confirm","type","successCallback","complete","context","timeout","ajax","url","spbcSettings","ajaxurl","security","ajax_nonce","no_cache","Math","random","xhrFields","responseType","filename","blob","Blob","link","createElement","href","URL","createObjectURL","download","click"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spbc-settings_tab--scanner.min.js","sources":["spbc-settings_tab--scanner.js"],"sourcesContent":["function spbc_popup_tip___show(show_icon){\n\n\tvar tip_title = show_icon.attr('spbc_tip_title') || null;\n\tvar\ttip_text = show_icon.attr('spbc_tip_text') || null;\n\tvar remove_desc_func = function(e){\n\n\t\tif(\n\t\t\ttypeof e === 'undefined' ||\n\t\t\t(\n\t\t\t\t(jQuery(e.target).parent('.spbc_popup_tip--wrapper').length == 0 || jQuery(e.target).hasClass('spbc_popup_tip--icon---cancel')) &&\n\t\t\t\t!jQuery(e.target).hasClass('spbc_popup_tip--icon---show')\n\t\t\t)\n\t\t){\n\t\t\tjQuery('.spbc_popup_tip--wrapper').hide();\n\t\t\tjQuery(document).off('click', remove_desc_func);\n\t\t}\n\t};\n\n\tremove_desc_func();\n\n\tshow_icon.after(\"
\");\n\n\tvar obj = jQuery('.spbc_popup_tip--wrapper');\n\n\tobj.empty()\n\t\t.append(\"
\")\n\t\t.css({\n\t\t\ttop: show_icon.position().top - 2,\n\t\t\tleft: show_icon.position().left + 25\n\t\t});\n\tobj.append(\"\")\n\t\t.append(\"

\" + tip_title + \"

\")\n\t\t.append(\"

\" + tip_text + \"

\");\n\n\tjQuery(document).on('click', remove_desc_func);\n\tshow_icon.parents('tr').on('mouseout', remove_desc_func);\n}\n\nfunction spbc_scanner_button_file_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\n/**\n * Delete file from analysis log\n */\nfunction spbc_scanner_analysis_log_delete_from_log(obj) {\n\tconst self = jQuery(obj);\n\tconst data = {\n\t\taction: 'spbc_scanner_analysis_log_delete_from_log',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: window.location.reload(),\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonView_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\n\tlet wp_wrap = jQuery('#wpwrap')\n\tlet dialog_window = jQuery('#spbc_dialog')\n\n\tdialog_window.dialog({\n\t\tmodal:true,\n\t\ttitle: 'Loading..',\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(wp_wrap.width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: false,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').height((document.documentElement.clientHeight) / 100 * 25);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t})\n\n\tdialog_window.append('\"Wait')\n\n\tlet spinner = jQuery('#spbc_file_view_preloader')\n\tlet size_multiplier = (wp_wrap.width() * 0.0004)\n\n\tspinner.height(128 * size_multiplier)\n\tspinner.width(128 * size_multiplier)\n\tspinner.css({left: dialog_window.width()/2 - (128 * size_multiplier / 2)})\n\tspinner.css({top: dialog_window.height()/2 - (128 * size_multiplier / 2)})\n\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonView_callback(result){\n\n\tlet dialog_window = jQuery('#spbc_dialog')\n\tdialog_window.empty();\n\n\tjQuery('#spbc_file_view_preloader').css({display:'none'})\n\n\tlet row_template = '
%s

%s


';\n\n\tfor(let row in result.file){\n\t\tdialog_window.append(row_template.printf(row, result.file[row]));\n\t}\n\n\tlet content_height = Object.keys(result.file).length * 19 < 76 ? 76 : Object.keys(result.file).length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'hidden' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tdialog_window.css({\n\t\theight: height,\n\t\toverflow: overflow\n\t})\n\n\tdialog_window.dialog({\n\t\tmodal:true,\n\t\ttitle: ('Loaded: ' + result.file_path),\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t});\n\n\tconsole.log('FILE_VIEWED');\n\n}\n\nfunction spbc_scanner_button_file_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_view',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBadFile_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_page_view_bad_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_view',\n\t\tpage_url: self.parent().attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonViewBad_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonViewBadFile_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE_FILE');\n\tconsole.log(arguments);\n\tjQuery('#spbc_dialog').empty();\n\n\tvar row_template = '
%s

%s


',\n\t\trow_template_bad = '
%s

%s


',\n\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\n\tfor(let str_num in str_nums){\n\n\t\tlet row = +str_nums[str_num],\n\t\t\tdisplay_depth = 2;\n\n\t\t// Display only existing lines of file\n\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\tjQuery('#spbc_dialog').append((row === curr_row ? row_template_bad : row_template).printf(curr_row, result.file[curr_row]));\n\t\t\t}\n\t\t}\n\n\t\t// Placing an empty string between results\n\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\n\t}\n\n\t // Removing last empty string\n\tjQuery('#spbc_dialog div').last().remove();\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t});\n}\n\nfunction spbc_scannerButtonViewBad_callback(result, data, params){\n\n\tconsole.log('FILE_VIEWED_BAD_CODE');\n\n\tconsole.log(arguments);\n\n\tlet afterClose = () => {};\n\n\tif ( result.success == true ) {\n\t\tconsole.log(result);\n\t\tvar row_template = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\trow_template_bad = '
' +\n\t\t\t\t'%s' +\n\t\t\t\t'

%s

' +\n\t\t\t\t'
',\n\t\t\tstr_nums = [];\n\n\tresult.weak_spots = JSON.parse(result.weak_spots);\n\tfor(let severity in result.weak_spots){\n\t\tstr_nums = str_nums.concat(Object.keys(result.weak_spots[severity]));\n\t}\n\n\t\tstr_nums = [...new Set(str_nums)].sort(); // Sort bad line\n\t\t//get a map of bad strings\n\t\tlet bad_strings_map = new Map(Object.entries(result.weak_spots.CRITICAL)) //TODO: Probably there can get something else except CRITICAL in the future\n\t\tfor(let str_num in str_nums){\n\n\t\t\tlet row = +str_nums[str_num],\n\t\t\t\tdisplay_depth = 2;\n\n\t\t\t// Display only existing lines of file\n\t\t\tfor(let curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' ){\n\t\t\t\t\tlet is_bad_string = (row === curr_row)\n\t\t\t\t\tlet unformatted_row\n\t\t\t\t\tlet highlited_row\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\tunformatted_row = row_template_bad\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunformatted_row = row_template\n\t\t\t\t\t}\n\t\t\t\t\tif (is_bad_string){\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, bad_strings_map.get(str_nums[str_num]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlited_row = unformatted_row.printf(curr_row, result.file[curr_row]);\n\t\t\t\t\t}\n\t\t\t\t\tjQuery('#spbc_dialog').append(highlited_row);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Placing an empty string between results\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', ''));\n\n\t\t\t// Removing last empty string\n\t\t\tjQuery('#spbc_dialog div').last().remove();\n\t\t}\n\t} else {\n\t\tlet wrapperElement = '
%s
'\n\t\tjQuery('#spbc_dialog').append(wrapperElement.printf(result.content));\n\t\tafterClose = () => {document.location.reload();};\n\t}\n\n\tlet content_height = jQuery('#spbc_dialog div').length * 19 < 76 ? 76 : jQuery('#spbc_dialog div').length * 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\theight = 'auto',\n \t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll';\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: false,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t},\n\t\tclose: afterClose,\n\t});\n}\n\nfunction spbc_scanner_button_page_approve(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_page_approve',\n\t\tpage_url: self.parent().attr('uid'),\n\t\tpage_id: self.parent().parent().siblings('.page_id').text(),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: () => {\n\t\t\twindow.location.reload();\n\t\t},\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scanner_button_file_compare_event(obj){\n\tvar self = jQuery(obj);\n\tvar data = {\n\t\taction: 'spbc_scanner_file_compare',\n\t\tfile_id: self.parents('.row-actions').attr('uid'),\n\t};\n\tvar params = {\n\t\tspinner: self.parent().siblings('.tbl-preloader--tiny'),\n\t\tcallback: spbc_scannerButtonFileCompare_callback,\n\t\terrorOutput: function(msg){ spbcModal.open().putError( msg ); },\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\nfunction spbc_scannerButtonFileCompare_callback(result, data, params){\n\n\tconsole.log('FILE_COMPARED');\n\n\tlet row_template = '

%s

%s

%s


';\n\tlet row_template_bad = '

%s

%s

%s


';\n\n\tjQuery('#spbc_dialog').append(row_template.printf('Modified', 'Line', 'Original'));\n\n\tfor(var row=1, prev = false, next = false; typeof result.file[row] != 'undefined' || typeof result.file_original[row] != 'undefined'; row++){\n\n\t\tif(typeof result.file[row] == 'undefined') result.file[row] = '';\n\t\tif(typeof result.file_original[row] == 'undefined') result.file_original[row] = '';\n\n\t\t// Display only existing lines of file\n\t\tif(result.difference.indexOf(row) != -1){\n\t\t\tfor(let display_depth = 2, curr_row = row - display_depth; curr_row <= row + display_depth; curr_row++ ){\n\t\t\t\tif( typeof result.file[curr_row] !== 'undefined' && typeof result.file_original[row] !== 'undefined') {\n\t\t\t\t\tjQuery('#spbc_dialog').append(\n\t\t\t\t\t\t(row === curr_row ? row_template_bad : row_template).printf(\n\t\t\t\t\t\t\tresult.file[curr_row] ? result.file[curr_row] : '',\n\t\t\t\t\t\t\tcurr_row,\n\t\t\t\t\t\t\tresult.file_original[curr_row] ? result.file_original[curr_row] : ''\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tjQuery('#spbc_dialog').append(row_template. printf('', '', ''));\n\t\t}\n\t}\n\n\tvar content_height = jQuery('#spbc_dialog div').length * 19 + 19,\n\t\tvisible_height = (document.documentElement.clientHeight) / 100 * 75,\n\t\toverflow = content_height < visible_height ? 'no_scroll' : 'scroll',\n\t\theight = overflow === 'scroll' ? visible_height : content_height;\n\n\tjQuery('#spbc_dialog').dialog({\n\t\tmodal:true,\n\t\ttitle: result.file_path,\n\t\tposition: { my: \"center top\", at: \"center top+100px\" , of: window },\n\t\twidth: +(jQuery('#wpwrap').width() / 100 * 90),\n\t\theight: height,\n\t\tshow: { effect: \"blind\", duration: 500 },\n\t\tdraggable: true,\n\t\tresizable: true,\n\t\tcloseText: \"X\",\n\t\tclasses: {\"ui-dialog\": 'spbc---top'},\n\t\topen: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t\tevent.target.style.overflow = overflow;\n\t\t\tjQuery('#spbc_dialog').height(height);\n\t\t},\n\t\tbeforeClose: function(event, ui) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tjQuery('#spbc_dialog').empty();\n\t\t}\n\t});\n}\n\nfunction spbc_scanner__reload_scan_info() {\n\tjQuery('.spbc_hint__last_scan_title').text(spbcScaner.look_below_for_scan_res);\n\tconst data = {\n\t\taction: 'spbc_scanner__last_scan_info'\n\t};\n\tconst params = {\n\t\tcallback: (result) => {\n\t\t\tdocument.getElementById('spbc_scanner__last_scan_info').innerText = result.data;\n\t\t}\n\t};\n\tspbc_sendAJAXRequest(data, params);\n}\n\njQuery(document).ready(function(){\n\n\t// EVENT HADLING\n\tspbc_tbl__bulk_actions__listen(); // Table. Row bulk handler\n\tspbc_tbl__row_actions__listen(); // Table. Row actions handler\n\tspbc_tbl__pagination__listen(); // Table. Pagination handler\n\tspbc_tbl__sort__listen(); // Table. Sort handler\n\n\tspbcStartShowHide();\n\n\t// Preparing progressbar\n\tjQuery('#spbc_scaner_progress_bar').progressbar({\n\t\tvalue: 0,\n\t\tcreate: function( event, ui ) {\n\t\t\tevent.target.style.position = 'relative';\n\t\t\tevent.target.style.marginBottom = '12px';\n\t\t},\n\t\tchange: function(event, ui){\n\t\t\tjQuery('.spbc_progressbar_counter span').text(jQuery(event.target).progressbar('option', 'value') + ' %');\n\t\t},\n\t});\n\n\t// Preparing accordion\n\tjQuery('#spbc_scan_accordion').accordion({\n\t\theader: \"h3\",\n\t\theightStyle: 'content',\n\t\tcollapsible: true,\n\t\tactive: false,\n\t\tactivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 0 && ui.oldHeader.length === 0 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom spbc-overflow--visible\");\n\t\t},\n\t\tbeforeActivate: function( event, ui ) {\n\t\t\tif( ui.oldPanel.length === 1 && ui.oldHeader.length === 1 )\n\t\t\t\tjQuery(\"#spbc_scan_accordion\").accordion(\"option\", \"classes.ui-accordion-content\", \"ui-corner-bottom\");\n\t\t}\n\t});\n\n\t// Init scanner plugin\n\twindow.spbc_scanner = new spbcMalwareScanner({\n\t\tsettings: spbcScaner.settings,\n\t\tstates: spbcScaner.states,\n\t\tbutton: jQuery('#spbc_perform_scan'),\n\t\tspinner: jQuery('#spbc_perform_scan').next(),\n\t\tcallback: null,\n\t\tprogress_overall: jQuery('#spbc_scaner_progress_overall'),\n\t\tprogressbar: jQuery('#spbc_scaner_progress_bar'),\n\t\tprogressbar_text: jQuery('.spbc_progressbar_counter span'),\n\t\twrapper: document.getElementsByClassName('spbc_unchecked_file_list'),\n\t\twarnings: {\n\t\t long_scan: jQuery('.spbc_hint_warning__long_scan'),\n outdated: jQuery('.spbc_hint_warning__outdated')\n }\n\t});\n\n\tjQuery(document).on('click', '.spbc_popup_tip--icon---show', function(){\n\t\tspbc_popup_tip___show( jQuery( this ) );\n\t});\n\n\tjQuery('#spbc_perform_scan').on('click', function(){\n\t\tjQuery('#spbcscan-results-log-module').remove();\n\t\tspbc_scanner.actionControl();\n\n\t\tif (!jQuery(\".spbc_log-wrapper .panel-body\").length) {\n\t\t\tjQuery(\".spbc_log-wrapper\").append('
');\n\t\t}\n\n\t\tjQuery(\".spbc_log-wrapper\").resizable({\n\t\t handles: 'n, s',\n\t containment: 'document',\n\t\t});\n\t});\n\n\tjQuery(\"#spbcscan-results-log-module\").resizable({\n\t handles: 'n, s',\n containment: 'document',\n\t});\n\n\t//DEBUG\n\t// Clear table\n\tjQuery('#spbc_scanner_clear').on('click', function(){\n\n\t\tif( ! confirm('Do you wanna clear the table with file scan results?') )\n\t\t\treturn;\n\n\t\tconsole.log('CLEAR');\n\n\t\tspbc_sendAJAXRequest(\n\t\t\t{ action: 'spbc_scanner_clear', },\n\t\t\t{\n\t\t\t\ttype: 'GET',\n\t\t\t\tsuccessCallback: function(){ document.location = document.location },\n\t\t\t\tcomplete: null,\n\t\t\t\terrorOutput: null,\n\t\t\t\tcontext: this,\n\t\t\t\ttimeout: 40000\n\t\t\t},\n\t\t);\n\t});\n\n\tjQuery('#spbc_scanner_save_to_pdf').on('click', function(){\n\t\tjQuery.ajax({\n\t\t\turl: spbcSettings.ajaxurl,\n\t\t\ttype: 'POST',\n\t\t\tdata: {\n\t\t\t\taction: 'spbc_scanner_save_to_pdf',\n\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\tno_cache: Math.random()\n\t\t\t},\n\t\t\txhrFields: {\n\t\t\t\tresponseType: 'blob'\n\t\t\t},\n\t\t\tsuccess: function(data) {\n\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\turl: spbcSettings.ajaxurl,\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\taction: 'spbc_scanner_get_pdf_file_name',\n\t\t\t\t\t\t\tsecurity: spbcSettings.ajax_nonce,\n\t\t\t\t\t\t\tno_cache: Math.random()\n\t\t\t\t\t\t},\n\t\t\t\t\t\txhrFields: {\n\t\t\t\t\t\t\tresponseType: 'text'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function(filename) {\n\t\t\t\t\t\t\tlet blob=new Blob([data]);\n\t\t\t\t\t\t\tlet link=document.createElement('a');\n\t\t\t\t\t\t\tlink.href=window.URL.createObjectURL(blob);\n\t\t\t\t\t\t\tlink.download=filename.data;\n\t\t\t\t\t\t\tlink.click();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t});\n\t});\n});"],"names":["spbc_popup_tip___show","show_icon","remove_desc_func","e","jQuery","target","parent","length","hasClass","hide","document","off","tip_title","attr","tip_text","obj","after","empty","append","css","top","position","left","on","parents","spbc_scanner_button_file_view_event","self","data","action","file_id","params","spinner","siblings","callback","spbc_scannerButtonView_callback","errorOutput","msg","spbcModal","open","putError","spbc_sendAJAXRequest","spbc_scanner_analysis_log_delete_from_log","window","location","reload","spbc_scanner_button_page_view_event","page_url","wp_wrap","dialog_window","dialog","modal","title","my","at","of","width","show","effect","duration","draggable","resizable","closeText","classes","ui-dialog","event","ui","style","overflow","height","documentElement","beforeClose","body","size_multiplier","result","let","row","display","file","printf","content_height","Object","keys","visible_height","file_path","console","log","spbc_scanner_button_file_view_bad_event","spbc_scannerButtonViewBadFile_callback","spbc_scanner_button_page_view_bad_event","spbc_scannerButtonViewBad_callback","arguments","severity","str_num","row_template","str_nums","weak_spots","JSON","parse","concat","Set","sort","curr_row","last","remove","afterClose","success","bad_strings_map","Map","entries","CRITICAL","is_bad_string","unformatted_row","highlited_row","get","content","close","spbc_scanner_button_page_approve","page_id","text","spbc_scanner_button_file_compare_event","spbc_scannerButtonFileCompare_callback","file_original","difference","indexOf","spbc_scanner__reload_scan_info","spbcScaner","look_below_for_scan_res","getElementById","innerText","ready","spbc_tbl__bulk_actions__listen","spbc_tbl__row_actions__listen","spbc_tbl__pagination__listen","spbc_tbl__sort__listen","spbcStartShowHide","progressbar","value","create","marginBottom","change","accordion","header","heightStyle","collapsible","active","activate","oldPanel","oldHeader","beforeActivate","spbc_scanner","spbcMalwareScanner","settings","states","button","next","progress_overall","progressbar_text","wrapper","getElementsByClassName","warnings","long_scan","outdated","this","actionControl","handles","containment","confirm","type","successCallback","complete","context","timeout","ajax","url","spbcSettings","ajaxurl","security","ajax_nonce","no_cache","Math","random","xhrFields","responseType","filename","blob","Blob","link","createElement","href","URL","createObjectURL","download","click"],"mappings":"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"} \ No newline at end of file diff --git a/js/src/spbc-settings_tab--scanner.js b/js/src/spbc-settings_tab--scanner.js index 4463ac2bc..e1a57f1f4 100644 --- a/js/src/spbc-settings_tab--scanner.js +++ b/js/src/spbc-settings_tab--scanner.js @@ -124,11 +124,10 @@ function spbc_scanner_button_page_view_event(obj){ function spbc_scannerButtonView_callback(result){ let dialog_window = jQuery('#spbc_dialog') + dialog_window.empty(); jQuery('#spbc_file_view_preloader').css({display:'none'}) - dialog_window.dialog({title: ('Loaded: ' + result.file_path)}) - let row_template = '
%s

%s


'; for(let row in result.file){ @@ -145,7 +144,28 @@ function spbc_scannerButtonView_callback(result){ overflow: overflow }) + dialog_window.dialog({ + modal:true, + title: ('Loaded: ' + result.file_path), + position: { my: "center top", at: "center top+100px" , of: window }, + width: +(jQuery('#wpwrap').width() / 100 * 90), + show: { effect: "blind", duration: 500 }, + draggable: true, + resizable: false, + closeText: "X", + classes: {"ui-dialog": 'spbc---top'}, + open: function(event, ui) { + event.target.style.overflow = overflow; + jQuery('#spbc_dialog').height(height); + }, + beforeClose: function(event, ui) { + document.body.style.overflow = 'auto'; + jQuery('#spbc_dialog').empty(); + }, + }); + console.log('FILE_VIEWED'); + } function spbc_scanner_button_file_view_bad_event(obj){ @@ -180,6 +200,7 @@ function spbc_scannerButtonViewBadFile_callback(result, data, params){ console.log('FILE_VIEWED_BAD_CODE_FILE'); console.log(arguments); + jQuery('#spbc_dialog').empty(); var row_template = '
%s

%s


', row_template_bad = '
%s

%s


', @@ -206,8 +227,6 @@ function spbc_scannerButtonViewBadFile_callback(result, data, params){ // Placing an empty string between results jQuery('#spbc_dialog').append(row_template. printf('', '')); - // exception - if (str_nums = [1,2]) break; } // Removing last empty string From 033397a630220aa81a6ab949c3536fda762e437a Mon Sep 17 00:00:00 2001 From: SVFCode Date: Thu, 23 Mar 2023 17:19:52 +0400 Subject: [PATCH 22/28] fix phpcs --- lib/CleantalkSP/Updater/UpdaterScripts.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/CleantalkSP/Updater/UpdaterScripts.php b/lib/CleantalkSP/Updater/UpdaterScripts.php index 602a26024..74568ae8c 100644 --- a/lib/CleantalkSP/Updater/UpdaterScripts.php +++ b/lib/CleantalkSP/Updater/UpdaterScripts.php @@ -1078,7 +1078,7 @@ public static function updateTo_2_106_0() //phpcs:ignore PSR1.Methods.CamelCapsM $spbc->settings['traffic_control__autoblock_period'] = 900; } } - + $spbc->save('settings'); } } From 23d1b6161660968f070b122bc004c0de3c7dfb4f Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 14 Mar 2023 20:28:55 +0500 Subject: [PATCH 23/28] Version: 2.106 and changelog updated. --- readme.txt | 14 +++++++++++++- security-malware-firewall.php | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/readme.txt b/readme.txt index 7b7360a06..ea466c927 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: security, firewall, malware, wordpress security, brute force Requires at least: 3.0 Tested up to: 6.2 Requires PHP: 5.6 -Stable tag: 2.105 +Stable tag: 2.106 License: GPLv2 License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -301,6 +301,18 @@ This is required for the Security FireWall to function properly. Plugins that ar == Changelog == += 2.106 Mar 27 2023 = +#### Tested with WordPress up to: 6.2, traffic control timing options updated and some minor fixes applied. + * Mod. Tested WordPress up to: 6.2. + * Mod. Traffic control. Changed time selector options. + * Fix. Do not glue spbc dialog rows on bad code/file content preview. + * Fix. WAF. Upload checker details area fixed. + * Fix. Reduce firewall priority calculation cycle. + * Fix. HTTP lib. WP 6.2+ supporting implemented. + * Fix. Do not skip files analysis if aggregated size is overlimited. + * Fix. Do not show suspicious files if they have been sent for analysis. + * Fix. Heuristic. Unsetting verdict removed. + = 2.105 Mar 14 2023 = #### Traffic control IP table fixed, JS files now scans via scanner, service post meta hiding, fix of timezone appearances and some other minor improvements. * Mod. Post meta. Hide post meta fields to prevent their display. diff --git a/security-malware-firewall.php b/security-malware-firewall.php index 6b7e78fe3..1569c6485 100644 --- a/security-malware-firewall.php +++ b/security-malware-firewall.php @@ -5,7 +5,7 @@ Plugin URI: https://wordpress.org/plugins/security-malware-firewall/ Description: Security & Malware scan by CleanTalk to protect your website from online threats and viruses. IP/Country FireWall, Web application FireWall. Detailed stats and logs to have full control. Author: CleanTalk Security -Version: 2.105 +Version: 2.106 Author URI: https://cleantalk.org Text Domain: security-malware-firewall Domain Path: /i18n From 9d69c829009601e3227a9926f96129eeb68cd35f Mon Sep 17 00:00:00 2001 From: alexandergull Date: Fri, 24 Mar 2023 14:09:28 +0500 Subject: [PATCH 24/28] Fix. Remove side branch pscan_status trace. --- inc/spbc-settings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/spbc-settings.php b/inc/spbc-settings.php index 3e8dc8dce..173e5f8e1 100644 --- a/inc/spbc-settings.php +++ b/inc/spbc-settings.php @@ -3135,7 +3135,7 @@ function spbc_list_table__get_args_by_type($table_type) ), 'sql' => array( 'where' => ' WHERE severity <> "CRITICAL" AND - pscan_processing_status IS NULL AND + last_sent IS NULL AND (STATUS = "MODIFIED" OR severity IS NOT NULL)', ), 'order_by' => array('path' => 'asc'), From 0e5cd08fd292e6164f0e8f1ffc7d71978b7c70d5 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Mon, 27 Mar 2023 16:48:50 +0500 Subject: [PATCH 25/28] Fix. Show only core/lugins/themes in suspicious files. --- inc/spbc-settings.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/inc/spbc-settings.php b/inc/spbc-settings.php index 173e5f8e1..d781cf290 100644 --- a/inc/spbc-settings.php +++ b/inc/spbc-settings.php @@ -3088,7 +3088,13 @@ function spbc_list_table__get_args_by_type($table_type) ), 'sql' => array( // 'where' => ' WHERE severity IN("CRITICAL", "DANGER", "SUSPICIOUS") AND status <> "QUARANTINED"', - 'where' => ' WHERE severity IN("CRITICAL") AND (status <> "QUARANTINED" AND status <> "APROVED" AND status <> "APPROVED_BY_CT") AND (last_sent IS NULL OR analysis_status="DANGEROUS")', + 'where' => ' WHERE severity IN("CRITICAL") AND + (status <> "QUARANTINED" AND + status <> "APROVED" AND + status <> "APPROVED_BY_CT") + AND + (last_sent IS NULL OR + analysis_status="DANGEROUS")', ), 'order_by' => array('path' => 'asc'), ) @@ -3136,7 +3142,7 @@ function spbc_list_table__get_args_by_type($table_type) 'sql' => array( 'where' => ' WHERE severity <> "CRITICAL" AND last_sent IS NULL AND - (STATUS = "MODIFIED" OR severity IS NOT NULL)', + (status = "MODIFIED" AND severity IS NOT NULL)', ), 'order_by' => array('path' => 'asc'), ) From d7e9de3f0c45dd87493c38bd943856c57c12575d Mon Sep 17 00:00:00 2001 From: alexandergull Date: Mon, 27 Mar 2023 16:50:37 +0500 Subject: [PATCH 26/28] Fix. Empty offset on "remove from log" action. --- inc/spbc-scanner.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/inc/spbc-scanner.php b/inc/spbc-scanner.php index 5e87b5b09..bed1d4593 100644 --- a/inc/spbc-scanner.php +++ b/inc/spbc-scanner.php @@ -1439,6 +1439,8 @@ function spbc_scanner_analysis_log_delete_from_log() $file_id = Post::get('file_id', 'hash'); + $output = array('error' => false); + if ($file_id) { $updated_rows = $wpdb->update( SPBC_TBL_SCAN_FILES, From 409fefd3f8ed2c8bcfbca71a6cc264ea67dc58ae Mon Sep 17 00:00:00 2001 From: alexandergull Date: Mon, 27 Mar 2023 17:43:04 +0500 Subject: [PATCH 27/28] Fix. Quarantine. Use full_hash instead of path during WPDB query. --- inc/spbc-scanner.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/spbc-scanner.php b/inc/spbc-scanner.php index bed1d4593..a60cf3abb 100644 --- a/inc/spbc-scanner.php +++ b/inc/spbc-scanner.php @@ -1247,7 +1247,7 @@ function spbc_scanner_file_quarantine($direct_call = false, $file_id = null) 'status' => $file_info['status'], )), ), - array('path' => $file_info['path']), + array('full_hash' => $file_info['full_hash']), array('%s', '%s', '%d', '%s'), array('%s') ); From 3548b58f6d5f039aca4dd9c41351a22fd2709534 Mon Sep 17 00:00:00 2001 From: alexandergull Date: Tue, 28 Mar 2023 14:54:23 +0500 Subject: [PATCH 28/28] Mod. TC. IP address now kept in longip to prevent DB mystery. --- lib/CleantalkSP/SpbctWP/DB/SQLSchema.php | 2 +- lib/CleantalkSP/SpbctWP/Firewall/TC.php | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/CleantalkSP/SpbctWP/DB/SQLSchema.php b/lib/CleantalkSP/SpbctWP/DB/SQLSchema.php index 148da3b55..557e1b360 100644 --- a/lib/CleantalkSP/SpbctWP/DB/SQLSchema.php +++ b/lib/CleantalkSP/SpbctWP/DB/SQLSchema.php @@ -358,7 +358,7 @@ class SQLSchema extends \CleantalkSP\Common\DB\SQLSchema 'columns' => array( array('field' => 'id', 'type' => 'varchar(32)', 'null' => 'no',), array('field' => 'log_type', 'type' => 'tinyint', 'null' => 'yes', 'default' => 'NULL',), - array('field' => 'ip', 'type' => 'varchar(40)', 'null' => 'no',), + array('field' => 'ip', 'type' => 'int', 'null' => 'no',), array('field' => 'entries', 'type' => 'int', 'default' => '0'), array('field' => 'interval_start', 'type' => 'int', 'null' => 'no',), ), diff --git a/lib/CleantalkSP/SpbctWP/Firewall/TC.php b/lib/CleantalkSP/SpbctWP/Firewall/TC.php index 59929cd2d..5750953cb 100644 --- a/lib/CleantalkSP/SpbctWP/Firewall/TC.php +++ b/lib/CleantalkSP/SpbctWP/Firewall/TC.php @@ -75,11 +75,13 @@ public function check() foreach ( $this->ip_array as $_ip_origin => $current_ip ) { $rand = rand(1, 100000); + //convert to long to prevent db mystery + $long_ip = ip2long($current_ip); $result = $this->db->fetchAll( "SELECT SUM(entries) as total_count" . ' FROM `' . $this->log_table . '`' . " WHERE - ip = '$current_ip' AND + ip = '$long_ip' AND interval_start < '$time' AND $rand;", OBJECT @@ -119,11 +121,13 @@ private function updateLog() foreach ( $this->ip_array as $_ip_origin => $current_ip ) { $id = md5($current_ip . $interval_time); + //convert to long to prevent db mystery + $long_ip = ip2long($current_ip); $this->db->execute( "INSERT INTO " . $this->log_table . " SET id = '$id', log_type = 0, - ip = '$current_ip', + ip = '$long_ip', entries = 1, interval_start = $interval_time ON DUPLICATE KEY UPDATE