Version Description
- Fixed the Nonce Token error caused by W3 Total Cache breaking the set_transient function in WordPress.
- Added the Brazilian Portuguese language files, thanks to Marcelo Guernieri for the translation.
Download this release
Release Info
Developer | scheeeli |
Plugin | Anti-Malware Security and Brute-Force Firewall |
Version | 4.15.45 |
Comparing to | |
See all releases |
Code changes from version 4.15.44 to 4.15.45
- images/index.php +34 -21
- index.php +34 -31
- languages/gotmls.pot +49 -49
- readme.txt +13 -5
images/index.php
CHANGED
@@ -26,7 +26,7 @@ function __($text, $domain) {
|
|
26 |
|
27 |
$GLOBALS["GOTMLS"] = array(
|
28 |
"tmp"=>array("HeadersError"=>"", "onLoad"=>"", "file_contents"=>"", "new_contents"=>"", "threats_found"=>array(),
|
29 |
-
"skip_dirs" => array(".", ".."), "scanfiles" => array(),
|
30 |
"mt" => ((isset($_REQUEST["mt"])&&is_numeric($_REQUEST["mt"]))?$_REQUEST["mt"]:microtime(true)),
|
31 |
"threat_files" => array("htaccess"=>".htaccess","timthumb"=>"thumb.php"),
|
32 |
"threat_levels" => array(__("htaccess Threats",'gotmls')=>"htaccess",__("TimThumb Exploits",'gotmls')=>"timthumb",__("Backdoor Scripts",'gotmls')=>"backdoor",__("Known Threats",'gotmls')=>"known",__("Core File Changes",'gotmls')=>"wp_core",__("Potential Threats",'gotmls')=>"potential"),
|
@@ -35,21 +35,6 @@ $GLOBALS["GOTMLS"] = array(
|
|
35 |
"default" => array("msg_position" => array('80px', '40px', '400px', '600px'))));
|
36 |
GOTMLS_define("GOTMLS_script_URI", preg_replace('/\&(last_)?mt=[0-9\.]+/', '', str_replace('&', '&', htmlspecialchars($_SERVER["REQUEST_URI"], ENT_QUOTES))).'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"]);
|
37 |
|
38 |
-
if (!function_exists("GOTMLS_set_nonce")) {
|
39 |
-
function GOTMLS_set_nonce() {
|
40 |
-
set_transient($transient_name = 'GOTMLS_mt='.md5(GOTMLS_plugin_path.$GLOBALS["GOTMLS"]["tmp"]["mt"]), $GLOBALS["GOTMLS"]["tmp"]["mt"], DAY_IN_SECONDS);
|
41 |
-
return $transient_name;
|
42 |
-
}}
|
43 |
-
|
44 |
-
if (!function_exists("GOTMLS_get_nonce")) {
|
45 |
-
function GOTMLS_get_nonce() {
|
46 |
-
if (isset($_REQUEST["GOTMLS_mt"])) {
|
47 |
-
$transient_name = 'GOTMLS_mt='.$_REQUEST["GOTMLS_mt"];
|
48 |
-
return get_transient($transient_name);
|
49 |
-
} else
|
50 |
-
return false;
|
51 |
-
}}
|
52 |
-
|
53 |
if (!function_exists("GOTMLS_encode")) {
|
54 |
function GOTMLS_encode($unencoded_string) {
|
55 |
if (function_exists("base64_encode"))
|
@@ -100,7 +85,6 @@ if (isset($_GET["SESSION"]) && is_numeric($_GET["SESSION"]) && preg_match('|(.*?
|
|
100 |
} elseif (isset($_GET["no_error_reporting"]))
|
101 |
@error_reporting(0);
|
102 |
|
103 |
-
GOTMLS_define("GOTMLS_Invalid_Nonce_LANGUAGE", __("Invalid or expired Nonce Token!",'gotmls'));
|
104 |
GOTMLS_define("GOTMLS_Failed_to_list_LANGUAGE", __("Failed to list files in directory!",'gotmls'));
|
105 |
GOTMLS_define("GOTMLS_Run_Quick_Scan_LANGUAGE", __("Quick Scan",'gotmls'));
|
106 |
GOTMLS_define("GOTMLS_View_Quarantine_LANGUAGE", __("View Quarantine",'gotmls'));
|
@@ -126,6 +110,7 @@ if ((isset($_SERVER["HTTPS"]) && ($_SERVER["HTTPS"] == "on" || $_SERVER["HTTPS"]
|
|
126 |
else
|
127 |
$GLOBALS["GOTMLS"]["tmp"]["protocol"] = "http:";
|
128 |
if (function_exists("get_option")) {
|
|
|
129 |
$GLOBALS["GOTMLS"]["tmp"]["settings_array"] = get_option('GOTMLS_settings_array', array());
|
130 |
$GLOBALS["GOTMLS"]["tmp"]["definitions_array"] = get_option('GOTMLS_definitions_array', array());
|
131 |
GOTMLS_define("GOTMLS_siteurl", get_option("siteurl"));
|
@@ -138,6 +123,34 @@ if (function_exists("get_option")) {
|
|
138 |
$GLOBALS["GOTMLS"]["tmp"]["settings_array"] = array();
|
139 |
$GLOBALS["GOTMLS"]["tmp"]["definitions_array"] = array();
|
140 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
GOTMLS_define("GOTMLS_installation_key", md5(GOTMLS_siteurl));
|
142 |
if (function_exists("plugins_url"))
|
143 |
GOTMLS_define("GOTMLS_images_path", plugins_url('/', __FILE__));
|
@@ -415,7 +428,7 @@ function GOTMLS_scanfile($file) {
|
|
415 |
$className = "errors";
|
416 |
}
|
417 |
if (count($GLOBALS["GOTMLS"]["tmp"]["threats_found"])) {
|
418 |
-
$threat_link = $lt.'a target="GOTMLS_iFrame" href="'.admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce().'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].'&GOTMLS_scan='.$clean_file.preg_replace('/\&(GOTMLS_scan|mt|GOTMLS_mt|action)=/', '&last_\1=', isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"")).'" id="list_'.$clean_file.'" onclick="loadIframe(\''.str_replace("\"", """, $lt.'div style="float: left; white-space: nowrap;"'.$gt.__("Examine File",'gotmls').' ... '.$lt.'/div'.$gt.$lt.'div style="overflow: hidden; position: relative; height: 20px;"'.$gt.$lt.'div style="position: absolute; right: 0px; text-align: right; width: 9000px;"'.$gt.htmlspecialchars(GOTMLS_strip4java($file), ENT_NOQUOTES)).$lt.'/div'.$gt.$lt.'/div'.$gt.'\');" class="GOTMLS_plugin"'.$gt;
|
419 |
if ($className == "errors") {
|
420 |
$threat_link = GOTMLS_error_link($GLOBALS["GOTMLS"]["tmp"]["file_contents"], $file);
|
421 |
$imageFile = "/blocked";
|
@@ -452,7 +465,7 @@ function GOTMLS_scanfile($file) {
|
|
452 |
return "/*--{$gt}*"."/\nfailedFile('$clean_file');\n/*{$lt}!--*"."/";
|
453 |
}
|
454 |
} else {
|
455 |
-
echo __("Failed: ",'gotmls')
|
456 |
return "/*--{$gt}*"."/\nfailedFile('$clean_file');\n/*{$lt}!--*"."/";
|
457 |
}
|
458 |
}
|
@@ -728,9 +741,9 @@ function GOTMLS_strip4java($item, $htmlentities = false) {
|
|
728 |
function GOTMLS_error_link($errorTXT, $file = "", $class = "errors") {
|
729 |
global $post;
|
730 |
if (is_numeric($file) && isset($post->post_title))
|
731 |
-
$onclick = 'loadIframe(\''.str_replace("\"", """, '<div style="float: left; white-space: nowrap;">'.__("Examine Quarantined File",'gotmls').' ... </div><div style="overflow: hidden; position: relative; height: 20px;"><div style="position: absolute; right: 0px; text-align: right; width: 9000px;">'.GOTMLS_strip4java($post->post_title)).'</div></div>\');" href="'.admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce().'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].'&GOTMLS_scan='.$file);
|
732 |
elseif ($file)
|
733 |
-
$onclick = 'loadIframe(\''.str_replace("\"", """, '<div style="float: left; white-space: nowrap;">'.__("Examine File",'gotmls').' ... </div><div style="overflow: hidden; position: relative; height: 20px;"><div style="position: absolute; right: 0px; text-align: right; width: 9000px;">'.htmlspecialchars(GOTMLS_strip4java($file), ENT_NOQUOTES)).'</div></div>\');" href="'.admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce().'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].'&GOTMLS_scan='.GOTMLS_encode($file).preg_replace('/\&(GOTMLS_scan|mt|GOTMLS_mt|action)=/', '&last_\1=', isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:""));
|
734 |
else
|
735 |
$onclick = 'return false;';
|
736 |
return "<a title=\"$errorTXT\" target=\"GOTMLS_iFrame\" onclick=\"$onclick\" class=\"GOTMLS_plugin $class\">";
|
26 |
|
27 |
$GLOBALS["GOTMLS"] = array(
|
28 |
"tmp"=>array("HeadersError"=>"", "onLoad"=>"", "file_contents"=>"", "new_contents"=>"", "threats_found"=>array(),
|
29 |
+
"skip_dirs" => array(".", ".."), "scanfiles" => array(), "nonce"=>array(),
|
30 |
"mt" => ((isset($_REQUEST["mt"])&&is_numeric($_REQUEST["mt"]))?$_REQUEST["mt"]:microtime(true)),
|
31 |
"threat_files" => array("htaccess"=>".htaccess","timthumb"=>"thumb.php"),
|
32 |
"threat_levels" => array(__("htaccess Threats",'gotmls')=>"htaccess",__("TimThumb Exploits",'gotmls')=>"timthumb",__("Backdoor Scripts",'gotmls')=>"backdoor",__("Known Threats",'gotmls')=>"known",__("Core File Changes",'gotmls')=>"wp_core",__("Potential Threats",'gotmls')=>"potential"),
|
35 |
"default" => array("msg_position" => array('80px', '40px', '400px', '600px'))));
|
36 |
GOTMLS_define("GOTMLS_script_URI", preg_replace('/\&(last_)?mt=[0-9\.]+/', '', str_replace('&', '&', htmlspecialchars($_SERVER["REQUEST_URI"], ENT_QUOTES))).'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"]);
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
if (!function_exists("GOTMLS_encode")) {
|
39 |
function GOTMLS_encode($unencoded_string) {
|
40 |
if (function_exists("base64_encode"))
|
85 |
} elseif (isset($_GET["no_error_reporting"]))
|
86 |
@error_reporting(0);
|
87 |
|
|
|
88 |
GOTMLS_define("GOTMLS_Failed_to_list_LANGUAGE", __("Failed to list files in directory!",'gotmls'));
|
89 |
GOTMLS_define("GOTMLS_Run_Quick_Scan_LANGUAGE", __("Quick Scan",'gotmls'));
|
90 |
GOTMLS_define("GOTMLS_View_Quarantine_LANGUAGE", __("View Quarantine",'gotmls'));
|
110 |
else
|
111 |
$GLOBALS["GOTMLS"]["tmp"]["protocol"] = "http:";
|
112 |
if (function_exists("get_option")) {
|
113 |
+
$GLOBALS["GOTMLS"]["tmp"]["nonce"] = get_option('GOTMLS_nonce_array', array());
|
114 |
$GLOBALS["GOTMLS"]["tmp"]["settings_array"] = get_option('GOTMLS_settings_array', array());
|
115 |
$GLOBALS["GOTMLS"]["tmp"]["definitions_array"] = get_option('GOTMLS_definitions_array', array());
|
116 |
GOTMLS_define("GOTMLS_siteurl", get_option("siteurl"));
|
123 |
$GLOBALS["GOTMLS"]["tmp"]["settings_array"] = array();
|
124 |
$GLOBALS["GOTMLS"]["tmp"]["definitions_array"] = array();
|
125 |
}
|
126 |
+
|
127 |
+
if (!function_exists("GOTMLS_Invalid_Nonce")) {
|
128 |
+
function GOTMLS_Invalid_Nonce($pre = "//Error: ") {
|
129 |
+
return $pre.__("Invalid or expired Nonce Token!",'gotmls').(isset($_REQUEST["GOTMLS_mt"])?$_REQUEST["GOTMLS_mt"].(isset($GLOBALS["GOTMLS"]["tmp"]["nonce"][$_REQUEST["GOTMLS_mt"]])?$GLOBALS["GOTMLS"]["tmp"]["nonce"][$_REQUEST["GOTMLS_mt"]]:"!found"):"GOTMLS_mt!set");
|
130 |
+
}}
|
131 |
+
|
132 |
+
if (!function_exists("GOTMLS_set_nonce")) {
|
133 |
+
function GOTMLS_set_nonce($context = "NULL") {
|
134 |
+
$transient_name = md5(GOTMLS_installation_key.GOTMLS_plugin_path.$GLOBALS["GOTMLS"]["tmp"]["mt"]);
|
135 |
+
foreach ($GLOBALS["GOTMLS"]["tmp"]["nonce"] as $nonce_key => $nonce_value)
|
136 |
+
if ($nonce_value < ($GLOBALS["GOTMLS"]["tmp"]["mt"] - (60 * 60 * 24)))
|
137 |
+
unset($GLOBALS["GOTMLS"]["tmp"]["nonce"][$nonce_value]);
|
138 |
+
if (!isset($GLOBALS["GOTMLS"]["tmp"]["nonce"][$transient_name])) {
|
139 |
+
$GLOBALS["GOTMLS"]["tmp"]["nonce"][$transient_name] = $GLOBALS["GOTMLS"]["tmp"]["mt"];
|
140 |
+
if (!update_option('GOTMLS_nonce_array', $GLOBALS["GOTMLS"]["tmp"]["nonce"]))
|
141 |
+
return ("$context=DB-err:".preg_replace('/[\r\n]+/', " ", htmlspecialchars(print_r($GLOBALS["GOTMLS"]["tmp"]["nonce"],1).$wpdb->last_error)));
|
142 |
+
}
|
143 |
+
return 'GOTMLS_mt='.$transient_name;
|
144 |
+
}}
|
145 |
+
|
146 |
+
if (!function_exists("GOTMLS_get_nonce")) {
|
147 |
+
function GOTMLS_get_nonce() {
|
148 |
+
if (isset($_REQUEST["GOTMLS_mt"]) && isset($GLOBALS["GOTMLS"]["tmp"]["nonce"][$_REQUEST["GOTMLS_mt"]]))
|
149 |
+
return $GLOBALS["GOTMLS"]["tmp"]["nonce"][$_REQUEST["GOTMLS_mt"]];
|
150 |
+
else
|
151 |
+
return false;
|
152 |
+
}}
|
153 |
+
|
154 |
GOTMLS_define("GOTMLS_installation_key", md5(GOTMLS_siteurl));
|
155 |
if (function_exists("plugins_url"))
|
156 |
GOTMLS_define("GOTMLS_images_path", plugins_url('/', __FILE__));
|
428 |
$className = "errors";
|
429 |
}
|
430 |
if (count($GLOBALS["GOTMLS"]["tmp"]["threats_found"])) {
|
431 |
+
$threat_link = $lt.'a target="GOTMLS_iFrame" href="'.admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce(__FUNCTION__."431").'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].'&GOTMLS_scan='.$clean_file.preg_replace('/\&(GOTMLS_scan|mt|GOTMLS_mt|action)=/', '&last_\1=', isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"")).'" id="list_'.$clean_file.'" onclick="loadIframe(\''.str_replace("\"", """, $lt.'div style="float: left; white-space: nowrap;"'.$gt.__("Examine File",'gotmls').' ... '.$lt.'/div'.$gt.$lt.'div style="overflow: hidden; position: relative; height: 20px;"'.$gt.$lt.'div style="position: absolute; right: 0px; text-align: right; width: 9000px;"'.$gt.htmlspecialchars(GOTMLS_strip4java($file), ENT_NOQUOTES)).$lt.'/div'.$gt.$lt.'/div'.$gt.'\');" class="GOTMLS_plugin"'.$gt;
|
432 |
if ($className == "errors") {
|
433 |
$threat_link = GOTMLS_error_link($GLOBALS["GOTMLS"]["tmp"]["file_contents"], $file);
|
434 |
$imageFile = "/blocked";
|
465 |
return "/*--{$gt}*"."/\nfailedFile('$clean_file');\n/*{$lt}!--*"."/";
|
466 |
}
|
467 |
} else {
|
468 |
+
echo GOTMLS_Invalid_Nonce(__("Failed: ",'gotmls'));
|
469 |
return "/*--{$gt}*"."/\nfailedFile('$clean_file');\n/*{$lt}!--*"."/";
|
470 |
}
|
471 |
}
|
741 |
function GOTMLS_error_link($errorTXT, $file = "", $class = "errors") {
|
742 |
global $post;
|
743 |
if (is_numeric($file) && isset($post->post_title))
|
744 |
+
$onclick = 'loadIframe(\''.str_replace("\"", """, '<div style="float: left; white-space: nowrap;">'.__("Examine Quarantined File",'gotmls').' ... </div><div style="overflow: hidden; position: relative; height: 20px;"><div style="position: absolute; right: 0px; text-align: right; width: 9000px;">'.GOTMLS_strip4java($post->post_title)).'</div></div>\');" href="'.admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce(__FUNCTION__."744").'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].'&GOTMLS_scan='.$file);
|
745 |
elseif ($file)
|
746 |
+
$onclick = 'loadIframe(\''.str_replace("\"", """, '<div style="float: left; white-space: nowrap;">'.__("Examine File",'gotmls').' ... </div><div style="overflow: hidden; position: relative; height: 20px;"><div style="position: absolute; right: 0px; text-align: right; width: 9000px;">'.htmlspecialchars(GOTMLS_strip4java($file), ENT_NOQUOTES)).'</div></div>\');" href="'.admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce(__FUNCTION__."746").'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].'&GOTMLS_scan='.GOTMLS_encode($file).preg_replace('/\&(GOTMLS_scan|mt|GOTMLS_mt|action)=/', '&last_\1=', isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:""));
|
747 |
else
|
748 |
$onclick = 'return false;';
|
749 |
return "<a title=\"$errorTXT\" target=\"GOTMLS_iFrame\" onclick=\"$onclick\" class=\"GOTMLS_plugin $class\">";
|
index.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
Plugin Name: Anti-Malware and Brute-Force
|
4 |
Plugin URI: http://gotmls.net/
|
5 |
Author: Eli Scheetz
|
6 |
Text Domain: gotmls
|
@@ -8,7 +8,7 @@ Author URI: http://wordpress.ieonly.com/category/my-plugins/anti-malware/
|
|
8 |
Contributors: scheeeli, gotmls
|
9 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
|
10 |
Description: This Anti-Virus/Anti-Malware plugin searches for Malware and other Virus like threats and vulnerabilities on your server and helps you remove them. It's always growing and changing to adapt to new threats so let me know if it's not working for you.
|
11 |
-
Version: 4.15.
|
12 |
*/
|
13 |
if (isset($_SERVER["DOCUMENT_ROOT"]) && ($SCRIPT_FILE = str_replace($_SERVER["DOCUMENT_ROOT"], "", isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:isset($_SERVER["SCRIPT_NAME"])?$_SERVER["SCRIPT_NAME"]:"")) && strlen($SCRIPT_FILE) > strlen("/".basename(__FILE__)) && substr(__FILE__, -1 * strlen($SCRIPT_FILE)) == substr($SCRIPT_FILE, -1 * strlen(__FILE__)))
|
14 |
include(dirname(__FILE__)."/safe-load/index.php");
|
@@ -73,11 +73,11 @@ function GOTMLS_menu() {
|
|
73 |
add_action('load-'.$my_admin_page, 'GOTMLS_admin_add_help_tab');
|
74 |
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Scan_Settings_LANGUAGE, GOTMLS_Scan_Settings_LANGUAGE, $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], $base_page, $base_function);
|
75 |
if (is_dir(dirname(__FILE__)."/../../../wp-includes") && is_dir(dirname(__FILE__)."/../../../wp-admin"))
|
76 |
-
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Run_Quick_Scan_LANGUAGE, GOTMLS_Run_Quick_Scan_LANGUAGE." (WP Core)", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "$base_page&scan_type=Quick+Scan&".GOTMLS_set_nonce(), $base_function);
|
77 |
if (is_dir(dirname(__FILE__)."/../../../wp-content/plugins"))
|
78 |
-
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Run_Quick_Scan_LANGUAGE, GOTMLS_Run_Quick_Scan_LANGUAGE." (plugins)", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "$base_page&scan_type=Quick+Scan&scan_only[]=wp-content/plugins&".GOTMLS_set_nonce(), $base_function);
|
79 |
if (is_dir(dirname(__FILE__)."/../../../wp-content/themes"))
|
80 |
-
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Run_Quick_Scan_LANGUAGE, GOTMLS_Run_Quick_Scan_LANGUAGE." (themes)", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "$base_page&scan_type=Quick+Scan&scan_only[]=wp-content/themes&".GOTMLS_set_nonce(), $base_function);
|
81 |
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_View_Quarantine_LANGUAGE, GOTMLS_View_Quarantine_LANGUAGE.(($Qs = GOTMLS_get_quarantine(true))?' <span class="awaiting-mod count-'.$Qs.'"><span class="awaiting-mod">'.$Qs.'</span></span>':""), $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "GOTMLS-View-Quarantine", "GOTMLS_View_Quarantine");
|
82 |
}
|
83 |
|
@@ -106,7 +106,7 @@ function GOTMLS_admin_add_help_tab() {
|
|
106 |
$screen->add_help_tab(array(
|
107 |
'id' => 'GOTMLS_Menu_Placement',
|
108 |
'title' => __("Menu Placement", 'gotmls'),
|
109 |
-
'content' => '<form method="POST" name="GOTMLS_menu_Form" action="'.admin_url('admin.php?page=GOTMLS-settings&'.GOTMLS_set_nonce()).'">'.$menu_opts.'</form>'
|
110 |
));
|
111 |
}
|
112 |
|
@@ -338,7 +338,7 @@ function releaseDiv() {
|
|
338 |
corner.style.width="90%";
|
339 |
corner.style.height="20px";
|
340 |
}
|
341 |
-
document.getElementById("GOTMLS_statusFrame").src = "'.admin_url('admin-ajax.php?action=GOTMLS_position&'.GOTMLS_set_nonce().'&GOTMLS_x=').'"+curDiv.style.left+"&GOTMLS_y="+curDiv.style.top;
|
342 |
offsetX=0;
|
343 |
offsetY=0;
|
344 |
}
|
@@ -357,7 +357,7 @@ function releaseCorner() {
|
|
357 |
corner.style.width="20px";
|
358 |
corner.style.height="20px";
|
359 |
}
|
360 |
-
document.getElementById("GOTMLS_statusFrame").src = "'.admin_url('admin-ajax.php?action=GOTMLS_position&'.GOTMLS_set_nonce().'&GOTMLS_w=').'"+curDiv.style.width+"&GOTMLS_h="+curDiv.style.height;
|
361 |
offsetW=0;
|
362 |
offsetH=0;
|
363 |
}
|
@@ -370,7 +370,7 @@ setDiv("div_file");
|
|
370 |
<li>Plugin: <span class="GOTMLS_date">'.GOTMLS_Version.'</span></li>
|
371 |
<li>Definitions: <span class="GOTMLS_date">'.$GLOBALS["GOTMLS"]["tmp"]["Definition"]["Latest"].'</span></li>
|
372 |
<li>Key: <span style="float: right;">'.GOTMLS_installation_key.'</span></li></ul>
|
373 |
-
<form id="updateform" method="post" name="updateform" action="'.str_replace("GOTMLS_mt=", "GOTMLS_last_mt=", GOTMLS_script_URI).'&'.GOTMLS_set_nonce().'">
|
374 |
<img style="display: none; float: right; margin-right: 14px;" src="'.GOTMLS_images_path.'checked.gif" height=16 width=16 alt="definitions file updated" id="autoUpdateDownload" onclick="showhide(\'autoUpdateForm\', true);">
|
375 |
'.str_replace('findUpdates', 'Definition_Updates', $Update_Div).'
|
376 |
<div id="autoUpdateForm" style="display: none;">
|
@@ -597,7 +597,7 @@ function GOTMLS_get_scanlog() {
|
|
597 |
$LastScan .= " and has not finish";
|
598 |
} else
|
599 |
$LastScan .= " failed to started";
|
600 |
-
$LastScan .= '<a href="'.GOTMLS_script_URI.'&GOTMLS_cl='.$row["mt"].'&'.GOTMLS_set_nonce().'">[clear log below this entry]</a></li>';
|
601 |
}
|
602 |
$LastScan .= '</ul>';
|
603 |
} else
|
@@ -692,12 +692,12 @@ function GOTMLS_get_quarantine($only = false) {
|
|
692 |
$args["paged"] = $_POST["paged"];
|
693 |
if ($old_files) {
|
694 |
$Q_Paged = '<form method="POST" name="GOTMLS_Form_page">';
|
695 |
-
$Q_Page = '<form method="POST" name="GOTMLS_Form_clean"><input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce()).'">'.__("You have old Quarantined files in the uploads directory on your server. The new quarantine is in your WordPress Database. You need to import these files into your database where they will be safer or just delete the quarantine folder inside /wp-content/uploads/ if you would rather just delete them.",'gotmls').'<br /><input type="submit" value="Import Quarantined Files Now">';
|
696 |
} else {
|
697 |
$my_query = new WP_Query($args);
|
698 |
$Q_Paged = '<form method="POST" name="GOTMLS_Form_page"><input type="hidden" id="GOTMLS_paged" name="paged" value="1"><div style="float: left;">Page:</div>';
|
699 |
$Q_Page = '
|
700 |
-
<form method="POST" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce()).(isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"?".$_SERVER["QUERY_STRING"]:"").'" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"><input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1"><input type="hidden" name="action" value="GOTMLS_fix">';
|
701 |
if ($my_query->have_posts()) {
|
702 |
$Q_Page .= '<p id="quarantine_buttons" style="display: none;"><input id="repair_button" type="submit" value="'.__("Restore selected files",'gotmls').'" class="button-primary" onclick="if (confirm(\''.__("Are you sure you want to overwrite the previously cleaned files with the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(1); loadIframe(\'File Restoration Results\'); } else return false;" /><input id="delete_button" type="submit" class="button-primary" value="'.__("Delete selected files",'gotmls').'" onclick="if (confirm(\''.__("Are you sure you want to permanently delete the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(2); loadIframe(\'File Deletion Results\'); } else return false;" /></p><p><b>'.__("The following items have been found to contain malicious code, they have been cleaned, and the original infected file contents have been saved here in the Quarantine. The code is safe here and you do not need to do anything further with these files.",'gotmls').'</b></p>
|
703 |
<ul name="found_Quarantine" id="found_Quarantine" class="GOTMLS_plugin known" style="background-color: #ccc; padding: 0;"><h3>'.($my_query->post_count>1?'<input type="checkbox" onchange="checkAllFiles(this.checked); document.getElementById(\'quarantine_buttons\').style.display = \'block\';"> '.sprintf(__("Check all %d",'gotmls'),$my_query->post_count):"").__(" Items in Quarantine",'gotmls').'<span class="GOTMLS_date">Date Quarantined</span><span class="GOTMLS_date">Date Infected</span></h3>';
|
@@ -717,7 +717,7 @@ function GOTMLS_get_quarantine($only = false) {
|
|
717 |
}
|
718 |
$return = "$Q_Paged\n</form><br style=\"clear: left;\" />\n$Q_Page\n</form>\n$Q_Paged\n</form><br style=\"clear: left;\" />\n";
|
719 |
if (($trashed = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE `post_type` = 'GOTMLS_quarantine' AND `post_status` != 'private'")) > 1)
|
720 |
-
$return = "<a href='".admin_url('admin-ajax.php?action=GOTMLS_empty_trash&'.GOTMLS_set_nonce())."' id='empty_trash_link' style='float: right;' target='GOTMLS_statusFrame'>[Clear $trashed Deleted Files from the Trash]</a>".$return;
|
721 |
return $return;
|
722 |
}
|
723 |
|
@@ -867,7 +867,7 @@ function GOTMLS_settings() {
|
|
867 |
$scan_whatopts = "\n$lt".'div style="padding: 4px 30px;" id="scan_group_div_'.$mg.'"'.$gt.$lt.'input type="radio" name="scan_what" id="not-only'.$mg.'" value="'.$mg.'"'.($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_what"]==$mg?' checked':'').' /'.$gt.$lt.'a style="text-decoration: none;" href="#scan_what" onclick="showOnly(\''.$mg.'\');document.getElementById(\'not-only'.$mg.'\').checked=true;"'."$gt$GOTMLS_scan_group$lt/a$gt{$lt}br /$gt\n$lt".'div class="rounded-corners" style="position: absolute; display: none; background-color: #CCF; margin: 0; padding: 10px; z-index: 10;" id="only'.$mg.'"'.$gt.$lt.'div style="padding-bottom: 6px;"'.$gt.GOTMLS_close_button('only'.$mg, 0).$lt.'b'.$gt.str_replace(" ", " ", __("Only Scan These Folders:",'gotmls')).$lt.'/b'.$gt.$lt.'/div'.$gt.$scan_whatopts;
|
868 |
}
|
869 |
$scan_optjs .= "document.getElementById('only'+what).style.display = 'block';\n}".((isset($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["auto_UPDATE_definitions"]) && $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["auto_UPDATE_definitions"])?"\nfunction auto_UPDATE_check() {\n\tif (auto_UPdef_check = document.getElementById('auto_UPDATE_definitions_check'))\n\t\tauto_UPdef_check.checked = true;\n}\nif (window.addEventListener)\n\twindow.addEventListener('load', auto_UPDATE_check)\nelse\n\tdocument.attachEvent('onload', auto_UPDATE_check);\n":"")."$lt/script$gt";
|
870 |
-
$scan_opts = "\n$lt".'form method="POST" name="GOTMLS_Form"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce()).'"'.$gt.$lt.'input type="hidden" name="scan_type" id="scan_type" value="Complete Scan" /'.$gt.'
|
871 |
'.$lt.'div style="float: left;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("What to look for:",'gotmls').$lt.'/b'.$gt.$lt.'/p'.$gt.'
|
872 |
'.$lt.'div style="padding: 0 30px;"'.$gt;
|
873 |
foreach ($GLOBALS["GOTMLS"]["tmp"]["threat_levels"] as $threat_level_name=>$threat_level) {
|
@@ -1021,13 +1021,13 @@ var startTime = 0;
|
|
1021 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1022 |
echo "\n{$lt}script type='text/javascript'$gt\nalert('Settings Saved!');\n$lt/script$gt\n";
|
1023 |
} else
|
1024 |
-
echo GOTMLS_box(
|
1025 |
} elseif (isset($_REQUEST["scan_what"]) && is_numeric($_REQUEST["scan_what"]) && ($_REQUEST["scan_what"] > -1)) {
|
1026 |
if ($GOTMLS_nonce) {
|
1027 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1028 |
if (!isset($_REQUEST["scan_type"]))
|
1029 |
$_REQUEST["scan_type"] = "Complete Scan";
|
1030 |
-
echo "\n$lt".'form method="POST" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce()).(isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"").'" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"'.$gt.$lt.'input type="hidden" name="action" value="GOTMLS_fix"'.$gt.$lt.'input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1"'.$gt;
|
1031 |
foreach ($_POST as $name => $value) {
|
1032 |
if (substr($name, 0, 10) != 'GOTMLS_fix') {
|
1033 |
if (is_array($value)) {
|
@@ -1084,7 +1084,7 @@ var startTime = 0;
|
|
1084 |
echo GOTMLS_update_status(__("Completed!",'gotmls'), 100);
|
1085 |
else {
|
1086 |
echo GOTMLS_update_status(__("Starting Scan ...",'gotmls'))."/*--{$gt}*"."/";
|
1087 |
-
echo "\nvar scriptSRC = '".admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce().'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].preg_replace('/\&(GOTMLS_scan|mt|GOTMLS_mt|action)=/', '&last_\1=', isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"").'&GOTMLS_scan=')."';\nvar scanfilesArKeys = new Array('".implode("','", array_keys($GLOBALS["GOTMLS"]["tmp"]["scanfiles"]))."');\nvar scanfilesArNames = new Array('Scanning ".implode("','Scanning ", $GLOBALS["GOTMLS"]["tmp"]["scanfiles"])."');".'
|
1088 |
var scanfilesI = 0;
|
1089 |
var stopScanning;
|
1090 |
var gotStuckOn = "";
|
@@ -1134,7 +1134,7 @@ var startTime = 0;
|
|
1134 |
}
|
1135 |
echo "/*--{$gt}*"."/\n$lt/script$gt";
|
1136 |
} else
|
1137 |
-
echo GOTMLS_box(
|
1138 |
} else {
|
1139 |
$patch_attr = array(
|
1140 |
array(
|
@@ -1156,7 +1156,7 @@ var startTime = 0;
|
|
1156 |
"icon" => "threat"
|
1157 |
)
|
1158 |
);
|
1159 |
-
$patch_action = $lt.'form method="POST" name="GOTMLS_Form_XMLRPC_patch"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce()).'"'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'input type="hidden" name="GOTMLS_XMLRPC_patching" value="1"'.$gt.$lt.'input type="submit" value="Block XMLRPC Access" style="display: none;" id="GOTMLS_XMLRPC_patch_button"'.$gt.$lt.'div id="GOTMLS_XMLRPC_patch_searching"'.$gt.__("Checking .htaccess file ...",'gotmls').' '.$lt.'img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="Wait..." /'.$gt.$lt.'/div'.$gt.$lt.'/div'.$gt.$lt.'script'.$gt."\nfunction testComplete() {\nif (autoUpdateDownloadGIF = document.getElementById('autoUpdateDownload'))\n\tdonationAmount = autoUpdateDownloadGIF.src.replace(/^.+\?/,'');\nif ((autoUpdateDownloadGIF.src == donationAmount) || donationAmount=='0') {\n\tif (patch_searching_div = document.getElementById('GOTMLS_XMLRPC_patch_searching')) {\n\t\tif (autoUpdateDownloadGIF.src == donationAmount)\n\t\t\tpatch_searching_div.innerHTML = '<span style=\"color: #F00;\">".__("You must register and donate to use this feature!",'gotmls')."</span>';\n\t\telse\n\t\t\tpatch_searching_div.innerHTML = '<span style=\"color: #F00;\">".__("This feature is available to those who have donated!",'gotmls')."</span>';\n\t}\n} else {\n\tshowhide('GOTMLS_XMLRPC_patch_searching');\n\tshowhide('GOTMLS_XMLRPC_patch_button', true);\n}\n}\nwindow.onload=testComplete;\n$lt/script$gt$lt".'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.$lt.'img src="'.GOTMLS_images_path.'question.gif"'.$gt.'Allow/Block XMLRPC Access (';
|
1160 |
$patch_found = false;
|
1161 |
$find = '|<Files[^>]+xmlrpc.php>(.+?)</Files>\s*(# END GOTMLS Patch to Block XMLRPC Access\s*)*|is';
|
1162 |
$head = str_replace(array('|<Files[^>]+', '(.+?)', '\\s*(', '\\s*)*|is'), array("<Files ", "\norder deny,allow\ndeny from all".(isset($_SERVER["REMOTE_ADDR"])?"\nallow from ".$_SERVER["REMOTE_ADDR"]:"").(isset($_SERVER["SERVER_ADDR"])?"\nallow from ".$_SERVER["SERVER_ADDR"]:"")."\n", "\n", "\n"), $find);
|
@@ -1220,7 +1220,7 @@ var startTime = 0;
|
|
1220 |
}
|
1221 |
$sec_opts = $lt.'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'img src="'.GOTMLS_images_path.'checked.gif"'.$gt.$lt.'b'.$gt.'Revolution Slider Exploit Protection (Automatically Enabled)'.$lt.'/b'.$gt.$lt.'/p'.$gt.__("This protection is automatically activated with this plugin because of the widespread attack on WordPress that are affecting so many site right now. It is still recommended that you make sure to upgrade and older versions of the Revolution Slider plugin, especially those included in some themes that will not update automatically. Even if you do not have Revolution Slider on your site it still can't hurt to have this protection installed.",'gotmls').$lt.'/div'.$gt.$lt.'hr /'.$gt.'
|
1222 |
'.$patch_action.'
|
1223 |
-
'.$lt.'form method="POST" name="GOTMLS_Form_patch"'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce()).'"'.$gt.$lt.'input type="submit" value="'.$patch_attr[$patch_status]["action"].'" style="'.($patch_status?'"'.$gt:' display: none;" id="GOTMLS_patch_button"'.$gt.$lt.'div id="GOTMLS_patch_searching" style="float: right;"'.$gt.__("Checking for session compatibility ...",'gotmls').' '.$lt.'img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="Wait..." /'.$gt.$lt.'/div'.$gt).$lt.'input type="hidden" name="GOTMLS_patching" value="1"'.$gt.$lt.'/div'.$gt.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'img src="'.GOTMLS_images_path.$patch_attr[$patch_status]["icon"].'.gif"'.$gt.$lt.'b'.$gt.'Brute-force Protection '.$patch_attr[$patch_status]["status"].$lt.'/b'.$gt.$lt.'/p'.$gt.$patch_attr[$patch_status]["language"].__(" For more information on Brute-Force attack prevention and the WordPress wp-login-php file ",'gotmls').' '.$lt.'a target="_blank" href="http://gotmls.net/tag/wp-login-php/"'.$gt.__("read my blog",'gotmls')."$lt/a$gt.$lt/div$gt$lt/form$gt\n{$lt}script type='text/javascript'$gt\nfunction search_patch_onload() {\n\tstopCheckingSession = checkupdateserver('".GOTMLS_images_path."gotmls.js?SESSION=0', 'GOTMLS_patch_searching');\n}\nif (window.addEventListener)\n\twindow.addEventListener('load', search_patch_onload)\nelse\n\tdocument.attachEvent('onload', search_patch_onload);\n$lt/script$gt";
|
1224 |
$admin_notice = "";
|
1225 |
if ($current_user->user_login == "admin") {
|
1226 |
if ($GOTMLS_nonce && isset($_POST["GOTMLS_admin_username"]) && ("admin" != trim($_POST["GOTMLS_admin_username"])) && strlen(trim($_POST["GOTMLS_admin_username"])) && preg_match('/^\s*[a-z_0-9\@\.\-]{3,}\s*$/i', $_POST["GOTMLS_admin_username"])) {
|
@@ -1232,7 +1232,7 @@ var startTime = 0;
|
|
1232 |
$admin_notice .= $lt.'hr /'.$gt;
|
1233 |
if (isset($_POST["GOTMLS_admin_username"]))
|
1234 |
$admin_notice .= $lt.'div class="updated"'.$gt.sprintf(__("Your new username must be at least 3 characters and can only contain "%s". Please try again.",'gotmls'), "a-z0-9_.-@").$lt.'/div'.$gt;
|
1235 |
-
$admin_notice .= $lt.'form method="POST" name="GOTMLS_Form_admin"'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'div style="float: left;"'.$gt.__("Change your username:",'gotmls').$lt.'/div'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce()).'"'.$gt.$lt.'input style="float: left;" type="text" id="GOTMLS_admin_username" name="GOTMLS_admin_username" size="6" value="admin"'.$gt.$lt.'input style="float: left;" type="submit" value="Change"'.$gt.$lt.'/div'.$gt.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'img src="'.GOTMLS_images_path.'threat.gif"'.$gt.$lt.'b'.$gt.'Admin Notice'.$lt.'/b'.$gt.$lt.'/p'.$gt.__("Your username is \"admin\", this is the most commonly guessed username by hackers and brute-force scripts. It is highly recommended that you change your username immediately.",'gotmls').$lt.'/div'.$gt.$lt.'/form'.$gt;
|
1236 |
}
|
1237 |
}
|
1238 |
echo GOTMLS_box(__("Firewall Options",'gotmls'), $sec_opts.$admin_notice);
|
@@ -1347,9 +1347,9 @@ function GOTMLS_ajax_position() {
|
|
1347 |
} else
|
1348 |
die("\n//Position Error: No new position to save!\n");
|
1349 |
update_option("GOTMLS_settings_array", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1350 |
-
die(GOTMLS_html_tags(array("html" => array("body" => htmlentities($_GET["GOTMLS_msg"]).' '.__("saved.",'gotmls').(implode($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["msg_position"]) == implode($GLOBALS["GOTMLS"]["tmp"]["default"]["msg_position"])?"":' <a href="'.admin_url('admin-ajax.php?action=GOTMLS_position&'.GOTMLS_set_nonce().'&GOTMLS_msg='.urlencode($GLOBALS["GOTMLS_msg"])).'">['.$GLOBALS["GOTMLS_msg"].']</a>'))), $properties));
|
1351 |
} else
|
1352 |
-
die("\n//Position Error: ".
|
1353 |
}
|
1354 |
add_action('wp_ajax_GOTMLS_position', 'GOTMLS_ajax_position');
|
1355 |
|
@@ -1363,7 +1363,7 @@ function GOTMLS_ajax_empty_trash() {
|
|
1363 |
} else
|
1364 |
$trashmsg = __("Failed to empty the trash.",'gotmls');
|
1365 |
} else
|
1366 |
-
$trashmsg =
|
1367 |
$properties = array("html" => $gl.'head'.$gl."script type='text/javascript'>\nif (curDiv = window.parent.document.getElementById('empty_trash_link'))\n\tcurDiv.style.display = 'none';\nalert('$trashmsg');\n</script$gl/head", "body" => 'style="margin: 0; padding: 0;"');
|
1368 |
die(GOTMLS_html_tags(array("html" => array("body" => $trashmsg)), $properties));
|
1369 |
}
|
@@ -1390,7 +1390,7 @@ function GOTMLS_ajax_whitelist() {
|
|
1390 |
} else
|
1391 |
die("\n//Whitelist Error: Invalid checksum!\n");
|
1392 |
} else
|
1393 |
-
die("\n//Whitelist Error: ".
|
1394 |
}
|
1395 |
add_action('wp_ajax_GOTMLS_whitelist', 'GOTMLS_ajax_whitelist');
|
1396 |
|
@@ -1448,11 +1448,11 @@ function GOTMLS_ajax_fix() {
|
|
1448 |
GOTMLS_update_scan_log(array("scan" => array("finish" => time(), "type" => "Automatic Fix")));
|
1449 |
}
|
1450 |
}
|
1451 |
-
die('<div id="check_site_warning" style="background-color: #F00;">'.sprintf(__("Because some changes were made we need to check to make sure it did not break your site. If this stays Red and the frame below does not load please <a %s>revert the changes</a> made during this automated fix process.",'gotmls'), 'target="_top" href="admin.php?page=GOTMLS-View-Quarantine"').' <span style="color: #F00;">'.__("Never mind, it worked!",'gotmls').'</span></div><br /><iframe id="test_frame" name="test_frame" src="'.admin_url('admin.php?page=GOTMLS-settings&check_site=1&'.GOTMLS_set_nonce()).'" style="width: 100%; height: 200px"></iframe>'.$li_js."/*-->*"."/\nalert_repaired(0);\n</script>\n$HTML[1]");
|
1452 |
} else
|
1453 |
die(GOTMLS_html_tags(array("html" => array("body" => "<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\nalert('".__("Nothing Selected to be Changed!",'gotmls')."');\n</script>".__("Done!",'gotmls')))));
|
1454 |
} else
|
1455 |
-
die(GOTMLS_html_tags(array("html" => array("body" => "<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\nalert('".
|
1456 |
}
|
1457 |
add_action('wp_ajax_GOTMLS_fix', 'GOTMLS_ajax_fix');
|
1458 |
|
@@ -1519,7 +1519,7 @@ function GOTMLS_ajax_scan() {
|
|
1519 |
}
|
1520 |
}
|
1521 |
window.parent.showhide("GOTMLS_iFrame", true);
|
1522 |
-
</script><table style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"><tr><td style="width: 100%"><form style="margin: 0;" method="post" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce()).'" onsubmit="return confirm(\''.__("Are you sure you want to delete this file from the quarantine?",'gotmls').'\');"><input type="hidden" name="GOTMLS_fix[]" value="'.$Q_post["ID"].'"><input type="hidden" name="GOTMLS_fixing" value="2"><input type="hidden" name="action" value="GOTMLS_fix"><input type="submit" value="DELETE from Quarantine" style="background-color: #C00; float: right;"></form><div id="fileperms" class="shadowed-box rounded-corners" style="display: none; position: absolute; left: 8px; top: 29px; background-color: #ccc; border: medium solid #C00; box-shadow: -3px 3px 3px #666; border-radius: 10px; padding: 10px;"><b>File Details</b><br />encoding: '.(function_exists("mb_detect_encoding")?mb_detect_encoding($GLOBALS["GOTMLS"]["tmp"]["file_contents"]):"Unknown").'<br />size: '.strlen($GLOBALS["GOTMLS"]["tmp"]["file_contents"]).' bytes<br />infected:'.$Q_post["post_modified_gmt"].'<br />quarantined:'.$Q_post["post_date_gmt"].'</div><div style="overflow: auto;"><span onmouseover="document.getElementById(\'fileperms\').style.display=\'block\';" onmouseout="document.getElementById(\'fileperms\').style.display=\'none\';">'.__("File Details:",'gotmls').'</span> ('.$fa.' )</div></td></tr><tr><td style="height: 100%"><textarea id="ta_file" style="width: 100%; height: 100%">'.htmlentities(str_replace("\r", "", $GLOBALS["GOTMLS"]["tmp"]["file_contents"])).'</textarea></td></tr></table>');
|
1523 |
} else
|
1524 |
die(GOTMLS_html_tags(array("html" => array("body" => __("This file no longer exists in the quarantine.",'gotmls')."<br />\n<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\n</script>"))));
|
1525 |
} else {
|
@@ -1580,14 +1580,17 @@ function GOTMLS_ajax_scan() {
|
|
1580 |
}
|
1581 |
}
|
1582 |
window.parent.showhide("GOTMLS_iFrame", true);
|
1583 |
-
</script><table style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"><tr><td style="width: 100%"><form style="margin: 0;" method="post" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce()).'" onsubmit="return confirm(\''.__("Are you sure this file is not infected and you want to ignore it in future scans?",'gotmls').'\');"><input type="hidden" name="GOTMLS_whitelist" value="'.GOTMLS_encode($file).'"><input type="hidden" name="action" value="GOTMLS_whitelist"><input type="hidden" name="GOTMLS_chksum" value="'.md5($GLOBALS["GOTMLS"]["tmp"]["file_contents"]).'O'.GOTMLS_installation_key.'"><input type="submit" value="Whitelist this file" style="float: right;"></form><div id="fileperms" class="shadowed-box rounded-corners" style="display: none; position: absolute; left: 8px; top: 29px; background-color: #ccc; border: medium solid #C00; box-shadow: -3px 3px 3px #666; border-radius: 10px; padding: 10px;"><b>File Details</b><br />encoding: '.(function_exists("mb_detect_encoding")?mb_detect_encoding($GLOBALS["GOTMLS"]["tmp"]["file_contents"]):"Unknown").'<br />size: '.strlen($GLOBALS["GOTMLS"]["tmp"]["file_contents"]).' ('.filesize($file).'bytes)<br />permissions: '.GOTMLS_fileperms($file).'<br />modified:'.date(" Y-m-d H:i:s ", filemtime($file)).'<br />changed:'.date(" Y-m-d H:i:s ", filectime($file)).'</div><div style="overflow: auto;"><span onmouseover="document.getElementById(\'fileperms\').style.display=\'block\';" onmouseout="document.getElementById(\'fileperms\').style.display=\'none\';">'.__("Potential threats in file:",'gotmls').'</span> ('.$fa.' )</div></td></tr><tr><td style="height: 100%"><textarea id="ta_file" style="width: 100%; height: 100%">'.htmlentities(str_replace("\r", "", $GLOBALS["GOTMLS"]["tmp"]["file_contents"])).'</textarea></td></tr></table>');
|
1584 |
}
|
1585 |
}
|
1586 |
}
|
1587 |
} else
|
1588 |
die("\n//Directory Error: Nothing to scan!\n");
|
1589 |
-
} else
|
1590 |
-
|
|
|
|
|
|
|
1591 |
}
|
1592 |
add_action('wp_ajax_GOTMLS_scan', 'GOTMLS_ajax_scan');
|
1593 |
|
1 |
<?php
|
2 |
/*
|
3 |
+
Plugin Name: Anti-Malware Security and Brute-Force Firewall
|
4 |
Plugin URI: http://gotmls.net/
|
5 |
Author: Eli Scheetz
|
6 |
Text Domain: gotmls
|
8 |
Contributors: scheeeli, gotmls
|
9 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
|
10 |
Description: This Anti-Virus/Anti-Malware plugin searches for Malware and other Virus like threats and vulnerabilities on your server and helps you remove them. It's always growing and changing to adapt to new threats so let me know if it's not working for you.
|
11 |
+
Version: 4.15.45
|
12 |
*/
|
13 |
if (isset($_SERVER["DOCUMENT_ROOT"]) && ($SCRIPT_FILE = str_replace($_SERVER["DOCUMENT_ROOT"], "", isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:isset($_SERVER["SCRIPT_NAME"])?$_SERVER["SCRIPT_NAME"]:"")) && strlen($SCRIPT_FILE) > strlen("/".basename(__FILE__)) && substr(__FILE__, -1 * strlen($SCRIPT_FILE)) == substr($SCRIPT_FILE, -1 * strlen(__FILE__)))
|
14 |
include(dirname(__FILE__)."/safe-load/index.php");
|
73 |
add_action('load-'.$my_admin_page, 'GOTMLS_admin_add_help_tab');
|
74 |
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Scan_Settings_LANGUAGE, GOTMLS_Scan_Settings_LANGUAGE, $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], $base_page, $base_function);
|
75 |
if (is_dir(dirname(__FILE__)."/../../../wp-includes") && is_dir(dirname(__FILE__)."/../../../wp-admin"))
|
76 |
+
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Run_Quick_Scan_LANGUAGE, GOTMLS_Run_Quick_Scan_LANGUAGE." (WP Core)", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "$base_page&scan_type=Quick+Scan&".GOTMLS_set_nonce(__FUNCTION__."76"), $base_function);
|
77 |
if (is_dir(dirname(__FILE__)."/../../../wp-content/plugins"))
|
78 |
+
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Run_Quick_Scan_LANGUAGE, GOTMLS_Run_Quick_Scan_LANGUAGE." (plugins)", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "$base_page&scan_type=Quick+Scan&scan_only[]=wp-content/plugins&".GOTMLS_set_nonce(__FUNCTION__."78"), $base_function);
|
79 |
if (is_dir(dirname(__FILE__)."/../../../wp-content/themes"))
|
80 |
+
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_Run_Quick_Scan_LANGUAGE, GOTMLS_Run_Quick_Scan_LANGUAGE." (themes)", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "$base_page&scan_type=Quick+Scan&scan_only[]=wp-content/themes&".GOTMLS_set_nonce(__FUNCTION__."80"), $base_function);
|
81 |
add_submenu_page($base_page, "$pluginTitle ".GOTMLS_View_Quarantine_LANGUAGE, GOTMLS_View_Quarantine_LANGUAGE.(($Qs = GOTMLS_get_quarantine(true))?' <span class="awaiting-mod count-'.$Qs.'"><span class="awaiting-mod">'.$Qs.'</span></span>':""), $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "GOTMLS-View-Quarantine", "GOTMLS_View_Quarantine");
|
82 |
}
|
83 |
|
106 |
$screen->add_help_tab(array(
|
107 |
'id' => 'GOTMLS_Menu_Placement',
|
108 |
'title' => __("Menu Placement", 'gotmls'),
|
109 |
+
'content' => '<form method="POST" name="GOTMLS_menu_Form" action="'.admin_url('admin.php?page=GOTMLS-settings&'.GOTMLS_set_nonce(__FUNCTION__."109")).'">'.$menu_opts.'</form>'
|
110 |
));
|
111 |
}
|
112 |
|
338 |
corner.style.width="90%";
|
339 |
corner.style.height="20px";
|
340 |
}
|
341 |
+
document.getElementById("GOTMLS_statusFrame").src = "'.admin_url('admin-ajax.php?action=GOTMLS_position&'.GOTMLS_set_nonce(__FUNCTION__."341").'&GOTMLS_x=').'"+curDiv.style.left+"&GOTMLS_y="+curDiv.style.top;
|
342 |
offsetX=0;
|
343 |
offsetY=0;
|
344 |
}
|
357 |
corner.style.width="20px";
|
358 |
corner.style.height="20px";
|
359 |
}
|
360 |
+
document.getElementById("GOTMLS_statusFrame").src = "'.admin_url('admin-ajax.php?action=GOTMLS_position&'.GOTMLS_set_nonce(__FUNCTION__."360").'&GOTMLS_w=').'"+curDiv.style.width+"&GOTMLS_h="+curDiv.style.height;
|
361 |
offsetW=0;
|
362 |
offsetH=0;
|
363 |
}
|
370 |
<li>Plugin: <span class="GOTMLS_date">'.GOTMLS_Version.'</span></li>
|
371 |
<li>Definitions: <span class="GOTMLS_date">'.$GLOBALS["GOTMLS"]["tmp"]["Definition"]["Latest"].'</span></li>
|
372 |
<li>Key: <span style="float: right;">'.GOTMLS_installation_key.'</span></li></ul>
|
373 |
+
<form id="updateform" method="post" name="updateform" action="'.str_replace("GOTMLS_mt=", "GOTMLS_last_mt=", GOTMLS_script_URI).'&'.GOTMLS_set_nonce(__FUNCTION__."373").'">
|
374 |
<img style="display: none; float: right; margin-right: 14px;" src="'.GOTMLS_images_path.'checked.gif" height=16 width=16 alt="definitions file updated" id="autoUpdateDownload" onclick="showhide(\'autoUpdateForm\', true);">
|
375 |
'.str_replace('findUpdates', 'Definition_Updates', $Update_Div).'
|
376 |
<div id="autoUpdateForm" style="display: none;">
|
597 |
$LastScan .= " and has not finish";
|
598 |
} else
|
599 |
$LastScan .= " failed to started";
|
600 |
+
$LastScan .= '<a href="'.GOTMLS_script_URI.'&GOTMLS_cl='.$row["mt"].'&'.GOTMLS_set_nonce(__FUNCTION__."600").'">[clear log below this entry]</a></li>';
|
601 |
}
|
602 |
$LastScan .= '</ul>';
|
603 |
} else
|
692 |
$args["paged"] = $_POST["paged"];
|
693 |
if ($old_files) {
|
694 |
$Q_Paged = '<form method="POST" name="GOTMLS_Form_page">';
|
695 |
+
$Q_Page = '<form method="POST" name="GOTMLS_Form_clean"><input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce(__FUNCTION__."695")).'">'.__("You have old Quarantined files in the uploads directory on your server. The new quarantine is in your WordPress Database. You need to import these files into your database where they will be safer or just delete the quarantine folder inside /wp-content/uploads/ if you would rather just delete them.",'gotmls').'<br /><input type="submit" value="Import Quarantined Files Now">';
|
696 |
} else {
|
697 |
$my_query = new WP_Query($args);
|
698 |
$Q_Paged = '<form method="POST" name="GOTMLS_Form_page"><input type="hidden" id="GOTMLS_paged" name="paged" value="1"><div style="float: left;">Page:</div>';
|
699 |
$Q_Page = '
|
700 |
+
<form method="POST" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce(__FUNCTION__."700")).(isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"?".$_SERVER["QUERY_STRING"]:"").'" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"><input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1"><input type="hidden" name="action" value="GOTMLS_fix">';
|
701 |
if ($my_query->have_posts()) {
|
702 |
$Q_Page .= '<p id="quarantine_buttons" style="display: none;"><input id="repair_button" type="submit" value="'.__("Restore selected files",'gotmls').'" class="button-primary" onclick="if (confirm(\''.__("Are you sure you want to overwrite the previously cleaned files with the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(1); loadIframe(\'File Restoration Results\'); } else return false;" /><input id="delete_button" type="submit" class="button-primary" value="'.__("Delete selected files",'gotmls').'" onclick="if (confirm(\''.__("Are you sure you want to permanently delete the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(2); loadIframe(\'File Deletion Results\'); } else return false;" /></p><p><b>'.__("The following items have been found to contain malicious code, they have been cleaned, and the original infected file contents have been saved here in the Quarantine. The code is safe here and you do not need to do anything further with these files.",'gotmls').'</b></p>
|
703 |
<ul name="found_Quarantine" id="found_Quarantine" class="GOTMLS_plugin known" style="background-color: #ccc; padding: 0;"><h3>'.($my_query->post_count>1?'<input type="checkbox" onchange="checkAllFiles(this.checked); document.getElementById(\'quarantine_buttons\').style.display = \'block\';"> '.sprintf(__("Check all %d",'gotmls'),$my_query->post_count):"").__(" Items in Quarantine",'gotmls').'<span class="GOTMLS_date">Date Quarantined</span><span class="GOTMLS_date">Date Infected</span></h3>';
|
717 |
}
|
718 |
$return = "$Q_Paged\n</form><br style=\"clear: left;\" />\n$Q_Page\n</form>\n$Q_Paged\n</form><br style=\"clear: left;\" />\n";
|
719 |
if (($trashed = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE `post_type` = 'GOTMLS_quarantine' AND `post_status` != 'private'")) > 1)
|
720 |
+
$return = "<a href='".admin_url('admin-ajax.php?action=GOTMLS_empty_trash&'.GOTMLS_set_nonce(__FUNCTION__."720"))."' id='empty_trash_link' style='float: right;' target='GOTMLS_statusFrame'>[Clear $trashed Deleted Files from the Trash]</a>".$return;
|
721 |
return $return;
|
722 |
}
|
723 |
|
867 |
$scan_whatopts = "\n$lt".'div style="padding: 4px 30px;" id="scan_group_div_'.$mg.'"'.$gt.$lt.'input type="radio" name="scan_what" id="not-only'.$mg.'" value="'.$mg.'"'.($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_what"]==$mg?' checked':'').' /'.$gt.$lt.'a style="text-decoration: none;" href="#scan_what" onclick="showOnly(\''.$mg.'\');document.getElementById(\'not-only'.$mg.'\').checked=true;"'."$gt$GOTMLS_scan_group$lt/a$gt{$lt}br /$gt\n$lt".'div class="rounded-corners" style="position: absolute; display: none; background-color: #CCF; margin: 0; padding: 10px; z-index: 10;" id="only'.$mg.'"'.$gt.$lt.'div style="padding-bottom: 6px;"'.$gt.GOTMLS_close_button('only'.$mg, 0).$lt.'b'.$gt.str_replace(" ", " ", __("Only Scan These Folders:",'gotmls')).$lt.'/b'.$gt.$lt.'/div'.$gt.$scan_whatopts;
|
868 |
}
|
869 |
$scan_optjs .= "document.getElementById('only'+what).style.display = 'block';\n}".((isset($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["auto_UPDATE_definitions"]) && $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["auto_UPDATE_definitions"])?"\nfunction auto_UPDATE_check() {\n\tif (auto_UPdef_check = document.getElementById('auto_UPDATE_definitions_check'))\n\t\tauto_UPdef_check.checked = true;\n}\nif (window.addEventListener)\n\twindow.addEventListener('load', auto_UPDATE_check)\nelse\n\tdocument.attachEvent('onload', auto_UPDATE_check);\n":"")."$lt/script$gt";
|
870 |
+
$scan_opts = "\n$lt".'form method="POST" name="GOTMLS_Form"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce(__FUNCTION__."870")).'"'.$gt.$lt.'input type="hidden" name="scan_type" id="scan_type" value="Complete Scan" /'.$gt.'
|
871 |
'.$lt.'div style="float: left;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("What to look for:",'gotmls').$lt.'/b'.$gt.$lt.'/p'.$gt.'
|
872 |
'.$lt.'div style="padding: 0 30px;"'.$gt;
|
873 |
foreach ($GLOBALS["GOTMLS"]["tmp"]["threat_levels"] as $threat_level_name=>$threat_level) {
|
1021 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1022 |
echo "\n{$lt}script type='text/javascript'$gt\nalert('Settings Saved!');\n$lt/script$gt\n";
|
1023 |
} else
|
1024 |
+
echo GOTMLS_box(GOTMLS_Invalid_Nonce(""), __("Saving these settings requires a valid Nonce Token. No valid Nonce Token was found at this time, either because the token have expired or because the data was invalid. Please try re-submitting the form above.",'gotmls')."\n{$lt}script type='text/javascript'$gt\nalert('".GOTMLS_Invalid_Nonce("")."');\n$lt/script$gt\n");
|
1025 |
} elseif (isset($_REQUEST["scan_what"]) && is_numeric($_REQUEST["scan_what"]) && ($_REQUEST["scan_what"] > -1)) {
|
1026 |
if ($GOTMLS_nonce) {
|
1027 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1028 |
if (!isset($_REQUEST["scan_type"]))
|
1029 |
$_REQUEST["scan_type"] = "Complete Scan";
|
1030 |
+
echo "\n$lt".'form method="POST" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce(__FUNCTION__."1030")).(isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"").'" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"'.$gt.$lt.'input type="hidden" name="action" value="GOTMLS_fix"'.$gt.$lt.'input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1"'.$gt;
|
1031 |
foreach ($_POST as $name => $value) {
|
1032 |
if (substr($name, 0, 10) != 'GOTMLS_fix') {
|
1033 |
if (is_array($value)) {
|
1084 |
echo GOTMLS_update_status(__("Completed!",'gotmls'), 100);
|
1085 |
else {
|
1086 |
echo GOTMLS_update_status(__("Starting Scan ...",'gotmls'))."/*--{$gt}*"."/";
|
1087 |
+
echo "\nvar scriptSRC = '".admin_url('admin-ajax.php?action=GOTMLS_scan&'.GOTMLS_set_nonce(__FUNCTION__."1087").'&mt='.$GLOBALS["GOTMLS"]["tmp"]["mt"].preg_replace('/\&(GOTMLS_scan|mt|GOTMLS_mt|action)=/', '&last_\1=', isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"").'&GOTMLS_scan=')."';\nvar scanfilesArKeys = new Array('".implode("','", array_keys($GLOBALS["GOTMLS"]["tmp"]["scanfiles"]))."');\nvar scanfilesArNames = new Array('Scanning ".implode("','Scanning ", $GLOBALS["GOTMLS"]["tmp"]["scanfiles"])."');".'
|
1088 |
var scanfilesI = 0;
|
1089 |
var stopScanning;
|
1090 |
var gotStuckOn = "";
|
1134 |
}
|
1135 |
echo "/*--{$gt}*"."/\n$lt/script$gt";
|
1136 |
} else
|
1137 |
+
echo GOTMLS_box(GOTMLS_Invalid_Nonce(""), __("Starting a Complete Scan requires a valid Nonce Token. No valid Nonce Token was found at this time, either because the token have expired or because the data was invalid. Please try re-submitting the form above.",'gotmls')."\n{$lt}script type='text/javascript'$gt\nalert('".GOTMLS_Invalid_Nonce("")."');\n$lt/script$gt\n");
|
1138 |
} else {
|
1139 |
$patch_attr = array(
|
1140 |
array(
|
1156 |
"icon" => "threat"
|
1157 |
)
|
1158 |
);
|
1159 |
+
$patch_action = $lt.'form method="POST" name="GOTMLS_Form_XMLRPC_patch"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce(__FUNCTION__."1159")).'"'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'input type="hidden" name="GOTMLS_XMLRPC_patching" value="1"'.$gt.$lt.'input type="submit" value="Block XMLRPC Access" style="display: none;" id="GOTMLS_XMLRPC_patch_button"'.$gt.$lt.'div id="GOTMLS_XMLRPC_patch_searching"'.$gt.__("Checking .htaccess file ...",'gotmls').' '.$lt.'img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="Wait..." /'.$gt.$lt.'/div'.$gt.$lt.'/div'.$gt.$lt.'script'.$gt."\nfunction testComplete() {\nif (autoUpdateDownloadGIF = document.getElementById('autoUpdateDownload'))\n\tdonationAmount = autoUpdateDownloadGIF.src.replace(/^.+\?/,'');\nif ((autoUpdateDownloadGIF.src == donationAmount) || donationAmount=='0') {\n\tif (patch_searching_div = document.getElementById('GOTMLS_XMLRPC_patch_searching')) {\n\t\tif (autoUpdateDownloadGIF.src == donationAmount)\n\t\t\tpatch_searching_div.innerHTML = '<span style=\"color: #F00;\">".__("You must register and donate to use this feature!",'gotmls')."</span>';\n\t\telse\n\t\t\tpatch_searching_div.innerHTML = '<span style=\"color: #F00;\">".__("This feature is available to those who have donated!",'gotmls')."</span>';\n\t}\n} else {\n\tshowhide('GOTMLS_XMLRPC_patch_searching');\n\tshowhide('GOTMLS_XMLRPC_patch_button', true);\n}\n}\nwindow.onload=testComplete;\n$lt/script$gt$lt".'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.$lt.'img src="'.GOTMLS_images_path.'question.gif"'.$gt.'Allow/Block XMLRPC Access (';
|
1160 |
$patch_found = false;
|
1161 |
$find = '|<Files[^>]+xmlrpc.php>(.+?)</Files>\s*(# END GOTMLS Patch to Block XMLRPC Access\s*)*|is';
|
1162 |
$head = str_replace(array('|<Files[^>]+', '(.+?)', '\\s*(', '\\s*)*|is'), array("<Files ", "\norder deny,allow\ndeny from all".(isset($_SERVER["REMOTE_ADDR"])?"\nallow from ".$_SERVER["REMOTE_ADDR"]:"").(isset($_SERVER["SERVER_ADDR"])?"\nallow from ".$_SERVER["SERVER_ADDR"]:"")."\n", "\n", "\n"), $find);
|
1220 |
}
|
1221 |
$sec_opts = $lt.'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'img src="'.GOTMLS_images_path.'checked.gif"'.$gt.$lt.'b'.$gt.'Revolution Slider Exploit Protection (Automatically Enabled)'.$lt.'/b'.$gt.$lt.'/p'.$gt.__("This protection is automatically activated with this plugin because of the widespread attack on WordPress that are affecting so many site right now. It is still recommended that you make sure to upgrade and older versions of the Revolution Slider plugin, especially those included in some themes that will not update automatically. Even if you do not have Revolution Slider on your site it still can't hurt to have this protection installed.",'gotmls').$lt.'/div'.$gt.$lt.'hr /'.$gt.'
|
1222 |
'.$patch_action.'
|
1223 |
+
'.$lt.'form method="POST" name="GOTMLS_Form_patch"'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce(__FUNCTION__."1223")).'"'.$gt.$lt.'input type="submit" value="'.$patch_attr[$patch_status]["action"].'" style="'.($patch_status?'"'.$gt:' display: none;" id="GOTMLS_patch_button"'.$gt.$lt.'div id="GOTMLS_patch_searching" style="float: right;"'.$gt.__("Checking for session compatibility ...",'gotmls').' '.$lt.'img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="Wait..." /'.$gt.$lt.'/div'.$gt).$lt.'input type="hidden" name="GOTMLS_patching" value="1"'.$gt.$lt.'/div'.$gt.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'img src="'.GOTMLS_images_path.$patch_attr[$patch_status]["icon"].'.gif"'.$gt.$lt.'b'.$gt.'Brute-force Protection '.$patch_attr[$patch_status]["status"].$lt.'/b'.$gt.$lt.'/p'.$gt.$patch_attr[$patch_status]["language"].__(" For more information on Brute-Force attack prevention and the WordPress wp-login-php file ",'gotmls').' '.$lt.'a target="_blank" href="http://gotmls.net/tag/wp-login-php/"'.$gt.__("read my blog",'gotmls')."$lt/a$gt.$lt/div$gt$lt/form$gt\n{$lt}script type='text/javascript'$gt\nfunction search_patch_onload() {\n\tstopCheckingSession = checkupdateserver('".GOTMLS_images_path."gotmls.js?SESSION=0', 'GOTMLS_patch_searching');\n}\nif (window.addEventListener)\n\twindow.addEventListener('load', search_patch_onload)\nelse\n\tdocument.attachEvent('onload', search_patch_onload);\n$lt/script$gt";
|
1224 |
$admin_notice = "";
|
1225 |
if ($current_user->user_login == "admin") {
|
1226 |
if ($GOTMLS_nonce && isset($_POST["GOTMLS_admin_username"]) && ("admin" != trim($_POST["GOTMLS_admin_username"])) && strlen(trim($_POST["GOTMLS_admin_username"])) && preg_match('/^\s*[a-z_0-9\@\.\-]{3,}\s*$/i', $_POST["GOTMLS_admin_username"])) {
|
1232 |
$admin_notice .= $lt.'hr /'.$gt;
|
1233 |
if (isset($_POST["GOTMLS_admin_username"]))
|
1234 |
$admin_notice .= $lt.'div class="updated"'.$gt.sprintf(__("Your new username must be at least 3 characters and can only contain "%s". Please try again.",'gotmls'), "a-z0-9_.-@").$lt.'/div'.$gt;
|
1235 |
+
$admin_notice .= $lt.'form method="POST" name="GOTMLS_Form_admin"'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'div style="float: left;"'.$gt.__("Change your username:",'gotmls').$lt.'/div'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', GOTMLS_set_nonce(__FUNCTION__."1235")).'"'.$gt.$lt.'input style="float: left;" type="text" id="GOTMLS_admin_username" name="GOTMLS_admin_username" size="6" value="admin"'.$gt.$lt.'input style="float: left;" type="submit" value="Change"'.$gt.$lt.'/div'.$gt.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'p'.$gt.$lt.'img src="'.GOTMLS_images_path.'threat.gif"'.$gt.$lt.'b'.$gt.'Admin Notice'.$lt.'/b'.$gt.$lt.'/p'.$gt.__("Your username is \"admin\", this is the most commonly guessed username by hackers and brute-force scripts. It is highly recommended that you change your username immediately.",'gotmls').$lt.'/div'.$gt.$lt.'/form'.$gt;
|
1236 |
}
|
1237 |
}
|
1238 |
echo GOTMLS_box(__("Firewall Options",'gotmls'), $sec_opts.$admin_notice);
|
1347 |
} else
|
1348 |
die("\n//Position Error: No new position to save!\n");
|
1349 |
update_option("GOTMLS_settings_array", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1350 |
+
die(GOTMLS_html_tags(array("html" => array("body" => htmlentities($_GET["GOTMLS_msg"]).' '.__("saved.",'gotmls').(implode($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["msg_position"]) == implode($GLOBALS["GOTMLS"]["tmp"]["default"]["msg_position"])?"":' <a href="'.admin_url('admin-ajax.php?action=GOTMLS_position&'.GOTMLS_set_nonce(__FUNCTION__."1350").'&GOTMLS_msg='.urlencode($GLOBALS["GOTMLS_msg"])).'">['.$GLOBALS["GOTMLS_msg"].']</a>'))), $properties));
|
1351 |
} else
|
1352 |
+
die(GOTMLS_Invalid_Nonce("\n//Position Error: ")."\n");
|
1353 |
}
|
1354 |
add_action('wp_ajax_GOTMLS_position', 'GOTMLS_ajax_position');
|
1355 |
|
1363 |
} else
|
1364 |
$trashmsg = __("Failed to empty the trash.",'gotmls');
|
1365 |
} else
|
1366 |
+
$trashmsg = GOTMLS_Invalid_Nonce("");
|
1367 |
$properties = array("html" => $gl.'head'.$gl."script type='text/javascript'>\nif (curDiv = window.parent.document.getElementById('empty_trash_link'))\n\tcurDiv.style.display = 'none';\nalert('$trashmsg');\n</script$gl/head", "body" => 'style="margin: 0; padding: 0;"');
|
1368 |
die(GOTMLS_html_tags(array("html" => array("body" => $trashmsg)), $properties));
|
1369 |
}
|
1390 |
} else
|
1391 |
die("\n//Whitelist Error: Invalid checksum!\n");
|
1392 |
} else
|
1393 |
+
die(GOTMLS_Invalid_Nonce("\n//Whitelist Error: ")."\n");
|
1394 |
}
|
1395 |
add_action('wp_ajax_GOTMLS_whitelist', 'GOTMLS_ajax_whitelist');
|
1396 |
|
1448 |
GOTMLS_update_scan_log(array("scan" => array("finish" => time(), "type" => "Automatic Fix")));
|
1449 |
}
|
1450 |
}
|
1451 |
+
die('<div id="check_site_warning" style="background-color: #F00;">'.sprintf(__("Because some changes were made we need to check to make sure it did not break your site. If this stays Red and the frame below does not load please <a %s>revert the changes</a> made during this automated fix process.",'gotmls'), 'target="_top" href="admin.php?page=GOTMLS-View-Quarantine"').' <span style="color: #F00;">'.__("Never mind, it worked!",'gotmls').'</span></div><br /><iframe id="test_frame" name="test_frame" src="'.admin_url('admin.php?page=GOTMLS-settings&check_site=1&'.GOTMLS_set_nonce(__FUNCTION__."1451")).'" style="width: 100%; height: 200px"></iframe>'.$li_js."/*-->*"."/\nalert_repaired(0);\n</script>\n$HTML[1]");
|
1452 |
} else
|
1453 |
die(GOTMLS_html_tags(array("html" => array("body" => "<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\nalert('".__("Nothing Selected to be Changed!",'gotmls')."');\n</script>".__("Done!",'gotmls')))));
|
1454 |
} else
|
1455 |
+
die(GOTMLS_html_tags(array("html" => array("body" => "<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\nalert('".GOTMLS_Invalid_Nonce("")."');\n</script>".__("Done!",'gotmls')))));
|
1456 |
}
|
1457 |
add_action('wp_ajax_GOTMLS_fix', 'GOTMLS_ajax_fix');
|
1458 |
|
1519 |
}
|
1520 |
}
|
1521 |
window.parent.showhide("GOTMLS_iFrame", true);
|
1522 |
+
</script><table style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"><tr><td style="width: 100%"><form style="margin: 0;" method="post" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce(__FUNCTION__."1522")).'" onsubmit="return confirm(\''.__("Are you sure you want to delete this file from the quarantine?",'gotmls').'\');"><input type="hidden" name="GOTMLS_fix[]" value="'.$Q_post["ID"].'"><input type="hidden" name="GOTMLS_fixing" value="2"><input type="hidden" name="action" value="GOTMLS_fix"><input type="submit" value="DELETE from Quarantine" style="background-color: #C00; float: right;"></form><div id="fileperms" class="shadowed-box rounded-corners" style="display: none; position: absolute; left: 8px; top: 29px; background-color: #ccc; border: medium solid #C00; box-shadow: -3px 3px 3px #666; border-radius: 10px; padding: 10px;"><b>File Details</b><br />encoding: '.(function_exists("mb_detect_encoding")?mb_detect_encoding($GLOBALS["GOTMLS"]["tmp"]["file_contents"]):"Unknown").'<br />size: '.strlen($GLOBALS["GOTMLS"]["tmp"]["file_contents"]).' bytes<br />infected:'.$Q_post["post_modified_gmt"].'<br />quarantined:'.$Q_post["post_date_gmt"].'</div><div style="overflow: auto;"><span onmouseover="document.getElementById(\'fileperms\').style.display=\'block\';" onmouseout="document.getElementById(\'fileperms\').style.display=\'none\';">'.__("File Details:",'gotmls').'</span> ('.$fa.' )</div></td></tr><tr><td style="height: 100%"><textarea id="ta_file" style="width: 100%; height: 100%">'.htmlentities(str_replace("\r", "", $GLOBALS["GOTMLS"]["tmp"]["file_contents"])).'</textarea></td></tr></table>');
|
1523 |
} else
|
1524 |
die(GOTMLS_html_tags(array("html" => array("body" => __("This file no longer exists in the quarantine.",'gotmls')."<br />\n<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\n</script>"))));
|
1525 |
} else {
|
1580 |
}
|
1581 |
}
|
1582 |
window.parent.showhide("GOTMLS_iFrame", true);
|
1583 |
+
</script><table style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"><tr><td style="width: 100%"><form style="margin: 0;" method="post" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce(__FUNCTION__."1583")).'" onsubmit="return confirm(\''.__("Are you sure this file is not infected and you want to ignore it in future scans?",'gotmls').'\');"><input type="hidden" name="GOTMLS_whitelist" value="'.GOTMLS_encode($file).'"><input type="hidden" name="action" value="GOTMLS_whitelist"><input type="hidden" name="GOTMLS_chksum" value="'.md5($GLOBALS["GOTMLS"]["tmp"]["file_contents"]).'O'.GOTMLS_installation_key.'"><input type="submit" value="Whitelist this file" style="float: right;"></form><div id="fileperms" class="shadowed-box rounded-corners" style="display: none; position: absolute; left: 8px; top: 29px; background-color: #ccc; border: medium solid #C00; box-shadow: -3px 3px 3px #666; border-radius: 10px; padding: 10px;"><b>File Details</b><br />encoding: '.(function_exists("mb_detect_encoding")?mb_detect_encoding($GLOBALS["GOTMLS"]["tmp"]["file_contents"]):"Unknown").'<br />size: '.strlen($GLOBALS["GOTMLS"]["tmp"]["file_contents"]).' ('.filesize($file).'bytes)<br />permissions: '.GOTMLS_fileperms($file).'<br />modified:'.date(" Y-m-d H:i:s ", filemtime($file)).'<br />changed:'.date(" Y-m-d H:i:s ", filectime($file)).'</div><div style="overflow: auto;"><span onmouseover="document.getElementById(\'fileperms\').style.display=\'block\';" onmouseout="document.getElementById(\'fileperms\').style.display=\'none\';">'.__("Potential threats in file:",'gotmls').'</span> ('.$fa.' )</div></td></tr><tr><td style="height: 100%"><textarea id="ta_file" style="width: 100%; height: 100%">'.htmlentities(str_replace("\r", "", $GLOBALS["GOTMLS"]["tmp"]["file_contents"])).'</textarea></td></tr></table>');
|
1584 |
}
|
1585 |
}
|
1586 |
}
|
1587 |
} else
|
1588 |
die("\n//Directory Error: Nothing to scan!\n");
|
1589 |
+
} else {
|
1590 |
+
if (isset($_GET["GOTMLS_scan"]) && is_dir(GOTMLS_decode($_GET["GOTMLS_scan"])))
|
1591 |
+
@header("Content-type: text/javascript");
|
1592 |
+
die(GOTMLS_Invalid_Nonce("\n//Ajax Scan Error: ")."\n");
|
1593 |
+
}
|
1594 |
}
|
1595 |
add_action('wp_ajax_GOTMLS_scan', 'GOTMLS_ajax_scan');
|
1596 |
|
languages/gotmls.pot
CHANGED
@@ -8,7 +8,7 @@ msgid ""
|
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: GOTMLS\n"
|
10 |
"Report-Msgid-Bugs-To: eli@gotmls.net\n"
|
11 |
-
"POT-Creation-Date: 2015-11-10
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -431,12 +431,12 @@ msgid "Checking .htaccess file ..."
|
|
431 |
msgstr ""
|
432 |
|
433 |
#: index.php:1159
|
434 |
-
#: images/index.php:
|
435 |
msgid "You must register and donate to use this feature!"
|
436 |
msgstr ""
|
437 |
|
438 |
#: index.php:1159
|
439 |
-
#: images/index.php:
|
440 |
msgid "This feature is available to those who have donated!"
|
441 |
msgstr ""
|
442 |
|
@@ -618,168 +618,168 @@ msgstr ""
|
|
618 |
msgid "Core File Changes"
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: images/index.php:
|
622 |
msgid "Your Server could not start a Session!"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: images/index.php:
|
626 |
-
msgid "Invalid or expired Nonce Token!"
|
627 |
-
msgstr ""
|
628 |
-
|
629 |
-
#: images/index.php:104
|
630 |
msgid "Failed to list files in directory!"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: images/index.php:
|
634 |
msgid "Quick Scan"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: images/index.php:
|
638 |
msgid "View Quarantine"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: images/index.php:
|
642 |
msgid "View Scan Log"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: images/index.php:
|
646 |
#, php-format
|
647 |
msgid "This Plugin requires WordPress version %s or higher"
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: images/index.php:
|
651 |
msgid "Scan Settings"
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: images/index.php:
|
655 |
msgid "Loading, Please Wait ..."
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: images/index.php:
|
659 |
msgid "Automatically Fix SELECTED Files Now"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: images/index.php:
|
|
|
|
|
|
|
|
|
663 |
msgid "an unknown file"
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: images/index.php:
|
667 |
msgid "unknown"
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: images/index.php:
|
671 |
#, php-format
|
672 |
msgid "<b>Headers already sent</b> in %1$s on line %2$s.<br />This is not a good sign, it may just be a poorly written plugin but Headers should not have been sent at this point.<br />Check the code in the above mentioned file to fix this problem."
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: images/index.php:
|
676 |
msgid "Failed to read file contents!"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: images/index.php:
|
680 |
msgid "Empty file!"
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: images/index.php:
|
684 |
msgid "Fixed file permissions! (try again)"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: images/index.php:
|
688 |
msgid "File permissions read-only!"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: images/index.php:
|
692 |
msgid "File not readable!"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: images/index.php:
|
696 |
msgid "File does not exist!"
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: images/index.php:
|
700 |
-
#: images/index.php:
|
701 |
msgid "Examine File"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: images/index.php:
|
705 |
msgid "Success!"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: images/index.php:
|
709 |
msgid "Failed:"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: images/index.php:
|
713 |
msgid "failed to quarantine!"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: images/index.php:
|
717 |
msgid "reason unknown!"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: images/index.php:
|
721 |
msgid "failed to write!"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: images/index.php:
|
725 |
msgid "file not writable!"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: images/index.php:
|
729 |
msgid "no file contents!"
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: images/index.php:
|
733 |
msgid "Failed: "
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: images/index.php:
|
737 |
-
#: images/index.php:
|
738 |
msgid "Already Fixed!"
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: images/index.php:
|
742 |
#, php-format
|
743 |
msgid "Preparing %s"
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: images/index.php:
|
747 |
-
#: images/index.php:
|
748 |
#, php-format
|
749 |
msgid "Scanning %s"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: images/index.php:
|
753 |
-
#: images/index.php:
|
754 |
#, php-format
|
755 |
msgid "Scanned %s"
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: images/index.php:
|
759 |
msgid "Examine Quarantined File"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: images/index.php:
|
763 |
msgid "Failed to determine file size!"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: images/index.php:
|
767 |
msgid "Skipped because of file size!"
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: images/index.php:
|
771 |
msgid "Skipped because of file extention!"
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: images/index.php:
|
775 |
msgid "Failed to read directory!"
|
776 |
msgstr ""
|
777 |
|
778 |
-
#: images/index.php:
|
779 |
#, php-format
|
780 |
msgid "Skipped because of file size (%1$s bytes) or file extention (%2$s)!"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: images/index.php:
|
784 |
msgid "Failed to read file!"
|
785 |
msgstr ""
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: GOTMLS\n"
|
10 |
"Report-Msgid-Bugs-To: eli@gotmls.net\n"
|
11 |
+
"POT-Creation-Date: 2015-11-13 10:08-1000\n"
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
431 |
msgstr ""
|
432 |
|
433 |
#: index.php:1159
|
434 |
+
#: images/index.php:71
|
435 |
msgid "You must register and donate to use this feature!"
|
436 |
msgstr ""
|
437 |
|
438 |
#: index.php:1159
|
439 |
+
#: images/index.php:71
|
440 |
msgid "This feature is available to those who have donated!"
|
441 |
msgstr ""
|
442 |
|
618 |
msgid "Core File Changes"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: images/index.php:75
|
622 |
msgid "Your Server could not start a Session!"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: images/index.php:88
|
|
|
|
|
|
|
|
|
626 |
msgid "Failed to list files in directory!"
|
627 |
msgstr ""
|
628 |
|
629 |
+
#: images/index.php:89
|
630 |
msgid "Quick Scan"
|
631 |
msgstr ""
|
632 |
|
633 |
+
#: images/index.php:90
|
634 |
msgid "View Quarantine"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: images/index.php:91
|
638 |
msgid "View Scan Log"
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: images/index.php:92
|
642 |
#, php-format
|
643 |
msgid "This Plugin requires WordPress version %s or higher"
|
644 |
msgstr ""
|
645 |
|
646 |
+
#: images/index.php:93
|
647 |
msgid "Scan Settings"
|
648 |
msgstr ""
|
649 |
|
650 |
+
#: images/index.php:94
|
651 |
msgid "Loading, Please Wait ..."
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: images/index.php:95
|
655 |
msgid "Automatically Fix SELECTED Files Now"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: images/index.php:129
|
659 |
+
msgid "Invalid or expired Nonce Token!"
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: images/index.php:231
|
663 |
msgid "an unknown file"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: images/index.php:233
|
667 |
msgid "unknown"
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: images/index.php:234
|
671 |
#, php-format
|
672 |
msgid "<b>Headers already sent</b> in %1$s on line %2$s.<br />This is not a good sign, it may just be a poorly written plugin but Headers should not have been sent at this point.<br />Check the code in the above mentioned file to fix this problem."
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: images/index.php:426
|
676 |
msgid "Failed to read file contents!"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: images/index.php:426
|
680 |
msgid "Empty file!"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: images/index.php:426
|
684 |
msgid "Fixed file permissions! (try again)"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: images/index.php:426
|
688 |
msgid "File permissions read-only!"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: images/index.php:426
|
692 |
msgid "File not readable!"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: images/index.php:426
|
696 |
msgid "File does not exist!"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: images/index.php:431
|
700 |
+
#: images/index.php:746
|
701 |
msgid "Examine File"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: images/index.php:459
|
705 |
msgid "Success!"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: images/index.php:462
|
709 |
msgid "Failed:"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: images/index.php:462
|
713 |
msgid "failed to quarantine!"
|
714 |
msgstr ""
|
715 |
|
716 |
+
#: images/index.php:462
|
717 |
msgid "reason unknown!"
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: images/index.php:462
|
721 |
msgid "failed to write!"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: images/index.php:462
|
725 |
msgid "file not writable!"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: images/index.php:462
|
729 |
msgid "no file contents!"
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: images/index.php:468
|
733 |
msgid "Failed: "
|
734 |
msgstr ""
|
735 |
|
736 |
+
#: images/index.php:475
|
737 |
+
#: images/index.php:481
|
738 |
msgid "Already Fixed!"
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: images/index.php:654
|
742 |
#, php-format
|
743 |
msgid "Preparing %s"
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: images/index.php:686
|
747 |
+
#: images/index.php:784
|
748 |
#, php-format
|
749 |
msgid "Scanning %s"
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: images/index.php:703
|
753 |
+
#: images/index.php:834
|
754 |
#, php-format
|
755 |
msgid "Scanned %s"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: images/index.php:744
|
759 |
msgid "Examine Quarantined File"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: images/index.php:756
|
763 |
msgid "Failed to determine file size!"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: images/index.php:758
|
767 |
msgid "Skipped because of file size!"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: images/index.php:760
|
771 |
msgid "Skipped because of file extention!"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: images/index.php:791
|
775 |
msgid "Failed to read directory!"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: images/index.php:809
|
779 |
#, php-format
|
780 |
msgid "Skipped because of file size (%1$s bytes) or file extention (%2$s)!"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: images/index.php:823
|
784 |
msgid "Failed to read file!"
|
785 |
msgstr ""
|
readme.txt
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
=== Anti-Malware and Brute-Force
|
2 |
Plugin URI: http://gotmls.net/
|
3 |
Author: Eli Scheetz
|
4 |
Author URI: http://wordpress.ieonly.com/category/my-plugins/anti-malware/
|
5 |
Contributors: scheeeli, gotmls
|
6 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
|
7 |
Tags: anti-malware, security, scanner, automatic, repair, remove, malware, virus, threat, hacked, malicious, infection, timthumb, exploit, block, brute-force, wp-login, patch, antimalware, revslider, Revolution Slider
|
8 |
-
Version: 4.15.
|
9 |
-
Stable tag: 4.15.
|
10 |
Requires at least: 3.3
|
11 |
Tested up to: 4.3.1
|
12 |
|
@@ -29,7 +29,7 @@ This Anti-Malware scanner searches for Malware, Viruses, and other security thre
|
|
29 |
* Check the integrity of your WordPress Core files.
|
30 |
* Automatically Download Definition Updates When running a Complete Scan.
|
31 |
|
32 |
-
Updated November
|
33 |
|
34 |
Register this plugin at [GOTMLS.NET](http://gotmls.net/) and get access to new definitions of "Known Threats" and added features like Automatic Removal, plus patches for specific security vulnerabilities like old versions of timthumb. Updated definition files can be downloaded automatically within the admin once your Key is registered. Otherwise, this plugin just scans for "Potential Threats" and leaves it up to you to identify and remove the malicious ones.
|
35 |
|
@@ -37,8 +37,9 @@ NOTICE: This plugin make use of a "phone home" feature to check for updates. Thi
|
|
37 |
|
38 |
**Special thanks to:**
|
39 |
|
40 |
-
* Clarus Dignus for design suggestions and graphic design work.
|
41 |
* Jelena Kovacevic and Andrew Kurtis of webhostinghub.com for providing the Spanish translation.
|
|
|
42 |
|
43 |
== Installation ==
|
44 |
|
@@ -94,6 +95,10 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
|
|
94 |
|
95 |
== Changelog ==
|
96 |
|
|
|
|
|
|
|
|
|
97 |
= 4.15.44 =
|
98 |
* Fixed the admin menu and also some links that did not work on Windows server.
|
99 |
|
@@ -370,6 +375,9 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
|
|
370 |
|
371 |
== Upgrade Notice ==
|
372 |
|
|
|
|
|
|
|
373 |
= 4.15.44 =
|
374 |
Fixed the admin menu and also some links that did not work on Windows server.
|
375 |
|
1 |
+
=== Anti-Malware Security and Brute-Force Firewall ===
|
2 |
Plugin URI: http://gotmls.net/
|
3 |
Author: Eli Scheetz
|
4 |
Author URI: http://wordpress.ieonly.com/category/my-plugins/anti-malware/
|
5 |
Contributors: scheeeli, gotmls
|
6 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
|
7 |
Tags: anti-malware, security, scanner, automatic, repair, remove, malware, virus, threat, hacked, malicious, infection, timthumb, exploit, block, brute-force, wp-login, patch, antimalware, revslider, Revolution Slider
|
8 |
+
Version: 4.15.45
|
9 |
+
Stable tag: 4.15.45
|
10 |
Requires at least: 3.3
|
11 |
Tested up to: 4.3.1
|
12 |
|
29 |
* Check the integrity of your WordPress Core files.
|
30 |
* Automatically Download Definition Updates When running a Complete Scan.
|
31 |
|
32 |
+
Updated November 13th
|
33 |
|
34 |
Register this plugin at [GOTMLS.NET](http://gotmls.net/) and get access to new definitions of "Known Threats" and added features like Automatic Removal, plus patches for specific security vulnerabilities like old versions of timthumb. Updated definition files can be downloaded automatically within the admin once your Key is registered. Otherwise, this plugin just scans for "Potential Threats" and leaves it up to you to identify and remove the malicious ones.
|
35 |
|
37 |
|
38 |
**Special thanks to:**
|
39 |
|
40 |
+
* Clarus Dignus for design suggestions and graphic design work on the banner image.
|
41 |
* Jelena Kovacevic and Andrew Kurtis of webhostinghub.com for providing the Spanish translation.
|
42 |
+
* Marcelo Guernieri for the Brazilian Portuguese translation.
|
43 |
|
44 |
== Installation ==
|
45 |
|
95 |
|
96 |
== Changelog ==
|
97 |
|
98 |
+
= 4.15.45 =
|
99 |
+
* Fixed the Nonce Token error caused by W3 Total Cache breaking the set_transient function in WordPress.
|
100 |
+
* Added the Brazilian Portuguese language files, thanks to Marcelo Guernieri for the translation.
|
101 |
+
|
102 |
= 4.15.44 =
|
103 |
* Fixed the admin menu and also some links that did not work on Windows server.
|
104 |
|
375 |
|
376 |
== Upgrade Notice ==
|
377 |
|
378 |
+
= 4.15.45 =
|
379 |
+
Fixed the Nonce Token error caused by W3 Total Cache, and added the Brazilian Portuguese translation by Marcelo Guernieri.
|
380 |
+
|
381 |
= 4.15.44 =
|
382 |
Fixed the admin menu and also some links that did not work on Windows server.
|
383 |
|