File manager - Edit - /home/verseaumee/blueversionx/wp-content/plugins/ninjascanner/static/ninjascanner.js
Back
/* +=====================================================================+ | _ _ _ _ ____ | | | \ | (_)_ __ (_) __ _/ ___| ___ __ _ _ __ _ __ ___ _ __ | | | \| | | '_ \ | |/ _` \___ \ / __/ _` | '_ \| '_ \ / _ \ '__| | | | |\ | | | | || | (_| |___) | (_| (_| | | | | | | | __/ | | | |_| \_|_|_| |_|/ |\__,_|____/ \___\__,_|_| |_|_| |_|\___|_| | | |__/ | | | | (c) NinTechNet ~ https://nintechnet.com/ | +=====================================================================+ */ var nscan_interval = 0; var nscan_error = 0; var nscan_init = 0; if (typeof nscani18n === 'undefined') { var nscani18n = '{""}'; } var nscan_all_cleared = '<tr style="background-color:#F9F9F9;height:30px">' + '<td class="ns-icon">' + '<span class="dashicons dashicons-marker ns-ok-file-icon"></span>' + '</td>' + '<td class="ns-file-centered">'+ nscani18n.no_problem +'</td>' + '</tr>'; // ===================================================================== // Start a scan. function nscanjs_start_scan( nscan_key, nscan_milliseconds = 1500, first_run = 0 ) { // Change buttons status jQuery('#start-scan').prop('disabled', true); // Hide report jQuery('#nscan-report-div').fadeOut(); // Hide Summary div jQuery('#last-scan-div').slideUp(); // Show progress bar jQuery('#scan-progress-div').slideDown(); // Hide potential messages jQuery('#summary-message').slideUp(); // Show running notice jQuery('#summary-running').slideDown(); var data = { 'action': 'nscan_startscan', 'nscan_key': nscan_key, 'first_run': first_run, }; // Test if eveything is working jQuery.ajax( { type: "POST", url: ajaxurl, data: data, dataType: 'json', success: function( response ) { if (typeof response === 'undefined') { nscanjs_cancel_scan( nscan_key, 0, 'nscan_startscan: response == undefined' ); alert( nscani18n.unknown_error ); return; } if ( response.status != 'success' ) { nscanjs_cancel_scan( nscan_key, 0, 'nscan_startscan: response != success' ); alert( nscani18n.error +' '+ response.message ); jQuery('#summary-message').html( '<p>'+ response.message +'</p>' ); jQuery('#summary-message').slideDown(); return; } // Show the cancel button here only, when we are back from // the blocking socket and its 4-second pause jQuery('#cancel-scan').prop('disabled', false); jQuery('#scan-progress-text').html( nscani18n.initialising ); // It's all good, check the status nscan_interval = setInterval( nscanjs_is_running.bind( null, nscan_key ), nscan_milliseconds ); }, // Display non-200 HTTP response error: function( xhr, status, err ) { // Make sure there was really an error, otherwise we would cancel // the running scan if the user moved away from the current page if ( err != '' ) { // Try to cancel it anyway nscanjs_cancel_scan( nscan_key, 0, 'nscan_startscan: response == err' ); // If the site or wp-admin is password-protected, we inform the user // that they can enter their username/password in the settings page: if ( xhr.status == 401 ) { jQuery('#summary-message').html( '<p>'+ nscani18n.http_error +' '+ xhr.status +' '+ err +'.<br />'+ nscani18n.http_auth +'</p>' ); jQuery('#summary-message').slideDown(); // HTTP error } else if ( xhr.status != 0 ) { jQuery('#summary-message').html( '<p>'+ nscani18n.http_error +' '+ xhr.status +' '+ err +'.</p>' ); jQuery('#summary-message').slideDown(); } else { // error: timeout etc ? jQuery('#summary-message').html( '<p>'+ nscani18n.unknown_error +' '+ err +'.</p>' ); jQuery('#summary-message').slideDown(); } } return; } }); } // ===================================================================== // Check and return the scanner's status function nscanjs_is_running( nscan_key ) { var data = { 'action': 'nscan_check_status', 'nscan_key': nscan_key, }; jQuery.ajax( { type: "POST", url: ajaxurl, data: data, dataType: 'json', success: function( response ) { if (typeof response === 'undefined') { nscanjs_cancel_scan( nscan_key, 0, 'nscan_check_status: response == undefined' ); alert( nscani18n.unknown_error ); return; } // Scanning process has stopped if ( response.status == 'stopped' ) { if ( nscan_interval != 0 ) { clearInterval( nscan_interval ); } // Reload interface and display report var string = window.location.href; if ( string.indexOf( '&view-report=1' ) !== -1 ) { // Remove the "section=x" so that we load the first page of the report: window.history.replaceState({}, document.title, window.location.href.replace( /§ion=\d+/, '§ion=1' ) ); window.location.href = window.location.href; } else { window.location.href = window.location.href + '&view-report=1'; } return; } // Error if ( response.status != 'success' ) { console.log("NinjaScanner error:\nresponse.status == '"+ response.status +"'\nresponse.message == '"+ response.message +"'\n"); nscanjs_cancel_scan( nscan_key, 0, 'nscan_check_status: response != success' ); jQuery('#summary-message').html( '<p>'+ response.message +'</p>' ); jQuery('#summary-message').slideDown(); return; } // We're using a non-blocking socket so we're trying to catch issues // during the initialisation of the scan if ( response.last == 'init' ) { ++nscan_init; if ( nscan_init > 20 ) { nscanjs_cancel_scan( nscan_key, 0, 'nscan_check_status: response == init' ); jQuery('#summary-message').html( '<p>'+ nscani18n.cannot_start +' '+nscani18n.http_auth +'</p>' ); jQuery('#summary-message').slideDown(); nscan_init = 0; } } // Scan is running: display progress bar if ( response.current_step > response.total_steps ) { // Last step response.current_step = response.total_steps; } var percent = parseInt( response.current_step * (100 / response.total_steps) ); jQuery('#ns-span-progress').css('width', percent + '%'); jQuery('#ns-div-progress').html( nscani18n.step + ' ' + response.current_step + '/' + response.total_steps ); jQuery('#scan-progress-text').text( response.message + '...' ); }, // Display non-200 HTTP response error: function( xhr, status, err ) { // Make sure there was really an error, otherwise we would cancel // the running scan if the user moved away from the current page if ( err != '' ) { // If the site or wp-admin is password-protected, we inform the user // that they can enter their username/password in the settings page: if ( xhr.status == 401 ) { jQuery('#summary-message').html( '<p>'+ nscani18n.http_error +' '+ xhr.status +' '+ err +'.<br />'+ nscani18n.http_auth +'</p>' ); jQuery('#summary-message').slideDown(); // HTTP error } else if ( xhr.status != 0 ) { jQuery('#summary-message').html( '<p>'+ nscani18n.http_error +' '+ xhr.status +' '+ err +'.</p>' ); jQuery('#summary-message').slideDown(); } else { // error: timeout etc ? jQuery('#summary-message').html( '<p>'+ nscani18n.unknown_error +' '+ err +'.</p>' ); jQuery('#summary-message').slideDown(); } nscanjs_cancel_scan( nscan_key, 0, 'nscan_check_status: response == err' ); } return; } }); } // ===================================================================== // Cancel a scan. function nscanjs_cancel_scan( nscan_key, prompt = false, message = '' ) { // Request comes from the dashboard if ( prompt == true ) { if (! confirm( nscani18n.cancel_scan ) ) { return false; } } // Clear timer: if ( nscan_interval != 0 ) { clearInterval( nscan_interval ); } // Send a cancel request: var data = { 'action': 'nscan_cancel', 'nscan_key': nscan_key, 'message': message }; jQuery.ajax( { type: "POST", url: ajaxurl, data: data, dataType: 'json', success: function( response ) { if (typeof response === 'undefined') { alert( nscani18n.unknown_error ); } else { if ( response.status != 'success' ) { alert( nscani18n.error +' '+ response.message ); } } // Show Summary div jQuery('#last-scan-div').slideDown(); // Hide progress bar jQuery('#scan-progress-div').slideUp(); // Hide running notice jQuery('#summary-running').slideUp(); // Change buttons status jQuery('#start-scan').prop('disabled', false); jQuery('#cancel-scan').prop('disabled', true); // Reinitiliaze ribon and message status jQuery('#scan-progress-text').text( nscani18n.wait ); jQuery('#ns-span-progress').css('width', '0%'); jQuery('#ns-div-progress').html( '' ); } }); } // ===================================================================== // Scan report functions. // Roll-up/unroll tables: function nscanjs_roll_unroll( id ) { if ( jQuery('#table-report-' + id).css('display') == 'none' ) { jQuery('#table-report-' + id).slideDown(); } else { jQuery('#table-report-' + id).slideUp(); } } // View file info: function nscanjs_file_info( id, name ) { if ( jQuery('#file-info-' + id).css('display') == 'none' ) { if ( jQuery('#div-all-rows-'+name).height() == 72 ) { jQuery('#div-all-rows-'+name).animate({'height': '155px'}, 400); } jQuery('#file-info-' + id).slideDown(); } else { jQuery('#file-info-' + id).slideUp(); if ( jQuery('#div-all-rows-'+name).height() == 155 ) { jQuery('#div-all-rows-'+name).animate({'height': '72px'}, 400); } } } // View file content: function nscanjs_file_operation( file, what, nonce, id, table_id, signature, fileinode ) { // View/compare file: if ( what == 'view' || what == 'compare' ) { // Note: "file" is already base64-encoded. var url = "?page=NinjaScanner&nscanop="+ what +"&file="+ encodeURIComponent( file ) +"&nscanop_nonce="+ nonce + "&fileinode="+ fileinode; // Highlight signature: if ( what == 'view' && typeof signature !== 'undefined' ) { url += '&signature=' + encodeURIComponent( signature ); } win = window.open( url, 'nscanop'); // Move the file to the quarantine folder: } else if ( what == 'quarantine' ) { var data = { 'action': 'nscan_quarantine', 'nscanop_nonce': nonce, 'file': file, 'fileinode': fileinode }; jQuery.post(ajaxurl, data, function(response) { response = jQuery.trim( response ); if ( response == 'success' || response == '404' ) { jQuery('#hide-row-' + id).css('background-color', '#F08F8F'); jQuery('#hide-row-' + id).fadeOut( 400 ); var total_items = jQuery('#total-items-row-' + table_id).html(); if ( total_items > 0 ) { jQuery('#total-items-row-' + table_id).html( --total_items ); } if ( total_items < 1 ) { jQuery('#table-all-rows-' + table_id).hide().html( nscan_all_cleared ).fadeIn('slow'); jQuery('#div-all-rows-' + table_id).css('height','41px'); jQuery('#div-all-rows-' + table_id).css('resize','none'); } } else { alert( response ); } }); // Restore the original file (core, plugin or theme): } else if ( what == 'restore' ) { var data = { 'action': 'nscan_restore', 'nscanop_nonce': nonce, 'file': file }; jQuery.post(ajaxurl, data, function(response) { response = jQuery.trim( response ); if ( response == 'success' ) { jQuery('#hide-row-' + id).css('background-color', '#8FF08F'); jQuery('#hide-row-' + id).fadeOut( 400 ); var total_items = jQuery('#total-items-row-' + table_id).html(); if ( total_items > 0 ) { jQuery('#total-items-row-' + table_id).html( --total_items ); } if ( total_items < 1 ) { jQuery('#table-all-rows-' + table_id).hide().html( nscan_all_cleared ).fadeIn('slow'); jQuery('#div-all-rows-' + table_id).css('height','41px'); jQuery('#div-all-rows-' + table_id).css('resize','none'); } } else { alert( response ); } }); // Ignore file: } else if ( what == 'ignore' ) { var data = { 'action': 'nscan_ignore', 'nscanop_nonce': nonce, 'file': file }; jQuery.post(ajaxurl, data, function(response) { response = jQuery.trim( response ); if ( response == 'success' || response == '404' ) { jQuery('#hide-row-' + id).css('background-color', '#8FC9F0'); jQuery('#hide-row-' + id).fadeOut( 400 ); var total_items = jQuery('#total-items-row-' + table_id).html(); if ( total_items > 0 ) { jQuery('#total-items-row-' + table_id).html( --total_items ); } if ( total_items < 1 ) { jQuery('#table-all-rows-' + table_id).hide().html( nscan_all_cleared ).fadeIn('slow'); jQuery('#div-all-rows-' + table_id).css('height','41px'); jQuery('#div-all-rows-' + table_id).css('resize','none'); } } else { alert( response ); } }); } else { alert( nscani18n.unknown_action ); } } // View post/pages: function nscanjs_view_post( post_id, dashboard_url ) { var url = dashboard_url + 'post.php?post=' + post_id + '&action=edit'; win = window.open( url, 'nscanop' ); } // ===================================================================== // Settings page JS functions. function nscanjs_toggle_settings(what) { if ( what == 1) { jQuery("#nscan-advanced-settings").slideDown(); jQuery("#nscan-show-advanced-settings").hide(); jQuery("#nscan-show-nerds-settings").show(); } else { jQuery("#nscan-nerds-settings").slideDown(); jQuery("#nscan-show-nerds-settings").hide(); } } function nscanjs_slow_scan_enable(what) { if ( document.getElementById(what).checked == true ) { if ( confirm( nscani18n.slow_down_scan_enable ) ) { return true; } return false; } } function nscanjs_restore_settings() { if ( confirm( nscani18n.restore_settings ) ) { return true; } return false; } function nscanjs_clear_cache() { if ( confirm( nscani18n.clear_cache_now ) ) { return true; } return false; } // Verify the validity of the user's Google API key: function nscanjs_gsb_check_key( apikey, nonce ) { if (! apikey ) { alert( nscani18n.empty_apikey ); jQuery('#nsgsb').focus(); return false; } if (! nonce ) { return false; } jQuery('#nsgsb-button').hide(); jQuery('#nsgsb-gif').show(); var data = { 'action': 'nscan_checkapikey', 'nscanop_nonce': nonce, 'api_key': apikey }; jQuery.post(ajaxurl, data, function(response) { response = jQuery.trim( response ); if ( response == 'success' ) { alert( nscani18n.success_apikey ); } else { alert( response ); jQuery('#nsgsb').select(); } jQuery('#nsgsb-gif').hide(); jQuery('#nsgsb-button').show(); }); return true; } // ===================================================================== // Quarantine page. function nscanjs_quarantine_form(what) { if ( document.getElementById('qf').selectedIndex == -1 ) { alert( nscani18n.select_elements ); return false; } // Permanently delete files: if ( what == 1 ) { if ( confirm( nscani18n.permanently_delete ) ) { return true; } // Restore quarantined files: } else { if ( confirm( nscani18n.restore_file ) ) { return true; } } return false; } // ===================================================================== // Ignored files list page. function nscanjs_remove_ignored() { if ( document.getElementById('if').selectedIndex == -1 ) { alert( nscani18n.select_elements ); return false; } } // ===================================================================== // Filter the debugging log. function nscanjs_filter_log() { // Create bitmask: var bitmask = 0; if ( document.nscanlogform.info.checked == true ) { bitmask += 1; } if ( document.nscanlogform.warn.checked == true ) { bitmask += 2; } if ( document.nscanlogform.error.checked == true ) { bitmask += 4; } if ( document.nscanlogform.debug.checked == true ) { bitmask += 8; } // Clear the textarea: document.nscanlogform.nscantxtlog.value = ''; // Browser through our array and return only selected verbosity: var nscan_count = 0; for ( i = 0; i < nscan_array.length; ++i ) { var line = decodeURIComponent( nscan_array[i] ); var line_array = line.split( '~~', 2 ); if ( line_array[0] & bitmask ) { document.nscanlogform.nscantxtlog.value += line_array[1]; ++nscan_count; } } if ( nscan_count == 0 ) { document.nscanlogform.nscantxtlog.value = '\n > ' + nscani18n.empty_log; } } // ===================================================================== // Highlight code. function nscanjs_highlight() { var nscan_content = document.getElementById('nscan-highlight').innerHTML; nscan_content = nscan_content.replace(/NSCANFOO/g, '<font style="background-color:yellow">'); nscan_content = nscan_content.replace(/NSCANBAR/g, '</font>'); document.getElementById('nscan-highlight').innerHTML = nscan_content; } // ===================================================================== // EOF
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings