Version Description
- Moved the Firewall Options to it's own page linked to from the admin menu.
- Moved the Quick Scan from the admin menu to the top of the Scan Settings page.
Download this release
Release Info
Developer | scheeeli |
Plugin | Anti-Malware Security and Brute-Force Firewall |
Version | 4.15.49 |
Comparing to | |
See all releases |
Code changes from version 4.15.46 to 4.15.49
- index.php +124 -119
- languages/gotmls.pot +224 -224
- readme.txt +18 -13
index.php
CHANGED
@@ -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");
|
@@ -72,12 +72,7 @@ function GOTMLS_menu() {
|
|
72 |
$my_admin_page = add_object_page($pageTitle, $pluginTitle, $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], $base_page, $base_function, $GOTMLS_Full_plugin_logo_URL);
|
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 |
-
|
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 |
|
@@ -726,6 +721,114 @@ function GOTMLS_View_Quarantine() {
|
|
726 |
echo $echo.GOTMLS_box(__("Scan Logs",'gotmls'), GOTMLS_get_scanlog())."\n</div></div></div>";
|
727 |
}
|
728 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
729 |
function GOTMLS_update_definitions() {
|
730 |
global $wp_version;
|
731 |
$GOTMLS_definitions_versions = array();
|
@@ -776,7 +879,7 @@ function GOTMLS_settings() {
|
|
776 |
$gt = ">";
|
777 |
$lt = "<";
|
778 |
GOTMLS_update_definitions();
|
779 |
-
if (($
|
780 |
$GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"] = $_REQUEST["check"];
|
781 |
/* $threat_names = array_keys($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"]);
|
782 |
foreach ($threat_names as $threat_name) {
|
@@ -856,7 +959,8 @@ function GOTMLS_settings() {
|
|
856 |
$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;
|
857 |
}
|
858 |
$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";
|
859 |
-
$
|
|
|
860 |
'.$lt.'div style="float: left;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("What to look for:",'gotmls').$lt.'/b'.$gt.$lt.'/p'.$gt.'
|
861 |
'.$lt.'div style="padding: 0 30px;"'.$gt;
|
862 |
foreach ($GLOBALS["GOTMLS"]["tmp"]["threat_levels"] as $threat_level_name=>$threat_level) {
|
@@ -883,12 +987,13 @@ function GOTMLS_settings() {
|
|
883 |
if (isset($_GET["SESSION"]) && isset($_SESSION["GOTMLS_debug"]['total'])) {$scan_opts .= $lt.'div style="float: right;"'.$gt.print_r($_SESSION["GOTMLS_debug"]['total'],1)."$lt/div$gt"; unset($_SESSION["GOTMLS_debug"]);}
|
884 |
if (isset($_GET["eli"])) {//still testing this option
|
885 |
$scan_opts .= "\n$lt".'div style="padding: 10px;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("Custom RegExp:",'gotmls').$lt.'/b'.$gt.' ('.__("For very advanced users only. Do not use this without talking to Eli first. If used incorrectly you could easily break your site.",'gotmls').')'.$lt.'/p'.$gt.$lt.'input type="text" name="check_custom" style="width: 100%;" value="'.htmlspecialchars($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check_custom"]).'" /'."$gt$lt/div$gt\n$lt".'div style="padding: 10px;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("Custom Code to be Checked:",'gotmls').$lt.'/b'.$gt.' ('.__("For very advanced users only. If you enter anything in this box then no other files will be scanned on your site.",'gotmls').')'.$lt.'/p'.$gt.$lt.'textarea name="check_code" style="width: 100%;" rows=3'.$gt.htmlspecialchars($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check_code"])."$lt/textarea$gt$lt/div$gt\n";
|
886 |
-
}
|
|
|
|
|
|
|
887 |
$scan_opts .= "\n$lt".'p'.$gt.$lt.'b'.$gt.__("Skip files with the following extentions:",'gotmls')."$lt/b$gt".(($default_exclude_ext!=implode(",", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_ext"]))?" {$lt}a href=\"javascript:void(0);\" onclick=\"document.getElementById('exclude_ext').value = '$default_exclude_ext';\"{$gt}[Restore Defaults]$lt/a$gt":"").$lt.'/p'.$gt.'
|
888 |
-
'.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'input type="text" placeholder="'.__("a comma separated list of file extentions to skip",'gotmls').'" name="exclude_ext" id="exclude_ext" value="'.implode(",", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_ext"]).'" style="width: 100%;" /'.$gt.$lt.'/div'.$gt.'
|
889 |
-
'.$lt.'
|
890 |
-
'.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'input type="text" placeholder="'.__("a folder name or comma separated list of folder names to skip",'gotmls').'" name="exclude_dir" value="'.implode(",", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_dir"]).'" style="width: 100%;" /'.$gt.$lt.'/div'.$gt.'
|
891 |
-
'.$lt.'table style="width: 100%" cellspacing="10"'.$gt.$lt.'tr'.$gt.$lt.'td nowrap valign="top" style="white-space: nowrap; width: 1px;"'.$gt.$lt.'b'.$gt.__("Automatically Update Definitions:",'gotmls').$lt.'/b'.$gt.$lt.'/td'.$gt.$lt.'td colspan=2'.$gt.$lt.'div id="UPDATE_definitions_div"'.$gt.$lt.'span style="color: #C00;"'.$gt.__("This new BETA feature is only available to registered users who have donated at a certain level.",'gotmls')."$lt/span$gt$lt/div$gt$lt/td$gt$lt".'td align="right" valign="bottom"'.$gt.$lt.'input type="submit" id="save_settings" value="'.__("Save Settings",'gotmls').'" class="button-primary" onclick="document.getElementById(\'scan_type\').value=\'Save\';" /'.$gt.' '.$lt.'input type="submit" id="complete_scan" value="'.__("Run Complete Scan",'gotmls').'" class="button-primary" onclick="document.getElementById(\'scan_type\').value=\'Complete Scan\';" /'."$gt$lt/td$gt$lt/tr$gt$lt/table$gt$lt/form$gt";
|
892 |
@ob_start();
|
893 |
$OB_default_handlers = array("default output handler", "zlib output compression");
|
894 |
$OB_handlers = @ob_list_handlers();
|
@@ -995,6 +1100,7 @@ function update_status(title, time) {
|
|
995 |
if ($MAX > 11)
|
996 |
$fix_button_js = "";
|
997 |
}
|
|
|
998 |
echo "/*--{$gt}*".'/
|
999 |
document.getElementById("status_counts").innerHTML = divHTML+"'.$lt.'/ul'.$gt.'";
|
1000 |
document.getElementById("fix_button").style.display = dis;
|
@@ -1004,15 +1110,15 @@ function showOnly(what) {
|
|
1004 |
document.getElementById("only_what").innerHTML = document.getElementById("only"+what).innerHTML;
|
1005 |
}
|
1006 |
var startTime = 0;
|
1007 |
-
'.$lt.'/script'.$gt.GOTMLS_box(
|
1008 |
if (isset($_REQUEST["scan_type"]) && $_REQUEST["scan_type"] == "Save") {
|
1009 |
-
if ($
|
1010 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1011 |
echo "\n{$lt}script type='text/javascript'$gt\nalert('Settings Saved!');\n$lt/script$gt\n";
|
1012 |
} else
|
1013 |
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");
|
1014 |
} elseif (isset($_REQUEST["scan_what"]) && is_numeric($_REQUEST["scan_what"]) && ($_REQUEST["scan_what"] > -1)) {
|
1015 |
-
if ($
|
1016 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1017 |
if (!isset($_REQUEST["scan_type"]))
|
1018 |
$_REQUEST["scan_type"] = "Complete Scan";
|
@@ -1026,7 +1132,7 @@ var startTime = 0;
|
|
1026 |
echo $lt.'input type="hidden" name="'.$name.'" value="'.htmlspecialchars($value).'"'.$gt;
|
1027 |
}
|
1028 |
}
|
1029 |
-
echo "\n$lt".'script type="text/javascript"'.$gt.'showhide("inside_'.md5(
|
1030 |
$scan_groups_UL = "";
|
1031 |
foreach ($scan_groups as $scan_name => $scan_group)
|
1032 |
$scan_groups_UL .= "\n{$lt}ul name=\"found_$scan_group\" id=\"found_$scan_group\" class=\"GOTMLS_plugin $scan_group\" style=\"background-color: #ccc; display: none; padding: 0;\"$gt{$lt}a class=\"rounded-corners\" name=\"link_$scan_group\" style=\"float: right; padding: 0 4px; margin: 5px 5px 0 30px; line-height: 16px; text-decoration: none; color: #C00; background-color: #FCC; border: solid #F00 1px;\" href=\"#found_top\" onclick=\"showhide('found_$scan_group');\"{$gt}X$lt/a$gt{$lt}h3$gt$scan_name$lt/h3$gt\n".($scan_group=='potential'?$lt.'p'.$gt.' * '.__("NOTE: These are probably not malicious scripts (but it's a good place to start looking <u>IF</u> your site is infected and no Known Threats were found).",'gotmls').$lt.'/p'.$gt:($scan_group=='wp_core'?$lt.'p'.$gt.' * '.sprintf(__("NOTE: We have detected changes to the WordPress Core files on your site. This could be an intentional modification or the malicious work of a hacker. We can restore these files to their original state to preserve the integrity of your original WordPress %s installation.",'gotmls'), $wp_version).' (for more info '.$lt.'a target="_blank" href="http://gotmls.net/tag/wp-core-files/"'.$gt.__("read my blog",'gotmls').$lt.'/a'.$gt.').'.$lt.'/p'.$gt:$lt.'br /'.$gt)).$lt.'/ul'.$gt;
|
@@ -1124,107 +1230,6 @@ var startTime = 0;
|
|
1124 |
echo "/*--{$gt}*"."/\n$lt/script$gt";
|
1125 |
} else
|
1126 |
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");
|
1127 |
-
} else {
|
1128 |
-
$patch_attr = array(
|
1129 |
-
array(
|
1130 |
-
"icon" => "blocked",
|
1131 |
-
"language" => __("Your WordPress Login page is susceptible to a brute-force attack (just like any other login page). These types of attacks are becoming more prevalent these days and can sometimes cause your server to become slow or unresponsive, even if the attacks do not succeed in gaining access to your site. Applying this patch will block access to the WordPress Login page whenever this type of attack is detected."),
|
1132 |
-
"status" => 'Not Installed',
|
1133 |
-
"action" => 'Install Patch'
|
1134 |
-
),
|
1135 |
-
array(
|
1136 |
-
"language" => __("Your WordPress site has the current version of my brute-force Login protection installed."),
|
1137 |
-
"action" => 'Uninstall Patch',
|
1138 |
-
"status" => 'Enabled',
|
1139 |
-
"icon" => "checked"
|
1140 |
-
),
|
1141 |
-
array(
|
1142 |
-
"language" => __("Your WordPress Login page has the old version of my brute-force protection installed. Upgrade this patch to improve the protection on the WordPress Login page and preserve the integrity of your WordPress core files."),
|
1143 |
-
"action" => 'Upgrade Patch',
|
1144 |
-
"status" => 'Out of Date',
|
1145 |
-
"icon" => "threat"
|
1146 |
-
)
|
1147 |
-
);
|
1148 |
-
$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 (';
|
1149 |
-
$patch_found = false;
|
1150 |
-
$find = '|<Files[^>]+xmlrpc.php>(.+?)</Files>\s*(# END GOTMLS Patch to Block XMLRPC Access\s*)*|is';
|
1151 |
-
$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);
|
1152 |
-
$htaccess = "";
|
1153 |
-
if (is_file(ABSPATH.'.htaccess'))
|
1154 |
-
if (($htaccess = @file_get_contents(ABSPATH.'.htaccess')) && strlen($htaccess))
|
1155 |
-
$patch_found = preg_match($find, $htaccess);
|
1156 |
-
if ($patch_found) {
|
1157 |
-
if ($GOTMLS_nonce && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] < 0) && GOTMLS_file_put_contents(ABSPATH.'.htaccess', preg_replace($find, "", $htaccess)))
|
1158 |
-
$patch_action .= $lt.'img src="'.GOTMLS_images_path.'checked.gif"'.$gt.' Now Allowing';
|
1159 |
-
elseif ($GOTMLS_nonce && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] < 0))
|
1160 |
-
$patch_action = str_replace('1"'.$gt.$lt.'input type="submit" value="Block', '-1"'.$gt.$lt.'input type="submit" value="Unblock', $patch_action).$lt.'img src="'.GOTMLS_images_path.'threat.gif"'.$gt.' Still Blocked: '.sprintf(__("Failed to remove XMLRPC Protection (.htaccess %s)",'gotmls'),(is_readable(ABSPATH.'.htaccess')?'read-'.(is_writable(ABSPATH.'.htaccess')?'write':'only'):"unreadable").": ".strlen($htaccess).GOTMLS_fileperms(ABSPATH.'.htaccess'));
|
1161 |
-
else
|
1162 |
-
$patch_action = str_replace('1"'.$gt.$lt.'input type="submit" value="Block', '-1"'.$gt.$lt.'input type="submit" value="Unblock', $patch_action).'Currently Blocked';
|
1163 |
-
} else {
|
1164 |
-
if ($GOTMLS_nonce && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] > 0) && GOTMLS_file_put_contents(ABSPATH.'.htaccess', "$head$htaccess"))
|
1165 |
-
$patch_action = str_replace('1"'.$gt.$lt.'input type="submit" value="Block', '-1"'.$gt.$lt.'input type="submit" value="Unblock', $patch_action).$lt.'img src="'.GOTMLS_images_path.'checked.gif"'.$gt.' Now Blocking';
|
1166 |
-
elseif ($GOTMLS_nonce && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] > 0))
|
1167 |
-
$patch_action .= $lt.'img src="'.GOTMLS_images_path.'threat.gif"'.$gt.' Still Allowed: '.sprintf(__("Failed to install XMLRPC Protection (.htaccess %s)",'gotmls'),(is_readable(ABSPATH.'.htaccess')?'read-'.(is_writable(ABSPATH.'.htaccess')?'write':'only'):"unreadable").": ".strlen($htaccess).GOTMLS_fileperms(ABSPATH.'.htaccess'));
|
1168 |
-
else
|
1169 |
-
$patch_action .= 'Currently Allowed';
|
1170 |
-
}
|
1171 |
-
$patch_action .= ")$lt/b$gt$lt/p$gt".__("Most WordPress site do not use the XMLRPC features and hack attempt on the xmlrpc.php file are more common then ever before. Even if there are no vulnerabilities for hackers to exploit these attempts can cause slowness or downtime similar to a DDoS attack. This patch automatically blocks all external access to the xmlrpc.php file.",'gotmls').$lt.'/div'.$gt.$lt.'/form'.$gt.$lt.'hr /'.$gt;
|
1172 |
-
$patch_status = 0;
|
1173 |
-
$patch_found = -1;
|
1174 |
-
$find = "#if\s*\(([^\&]+\&\&)?\s*file_exists\((.+?)(safe-load|wp-login)\.php'\)\)\s*require(_once)?\((.+?)(safe-load|wp-login)\.php'\);#";
|
1175 |
-
$head = str_replace(array('#', '\\(', '\\)', '(_once)?', ')\\.', '\\s*', '(.+?)(', '|', '([^\\&]+\\&\\&)?'), array(' ', '(', ')', '_once', '.', ' ', '\''.dirname(__FILE__).'/', '/', '!in_array($_SERVER["REMOTE_ADDR"], array("'.$_SERVER["REMOTE_ADDR"].'")) &&'), $find);
|
1176 |
-
if (is_file(ABSPATH.'../wp-config.php') && !is_file(ABSPATH.'wp-config.php'))
|
1177 |
-
$wp_config = '../wp-config.php';
|
1178 |
-
else
|
1179 |
-
$wp_config = 'wp-config.php';
|
1180 |
-
if (is_file(ABSPATH.$wp_config)) {
|
1181 |
-
if (($config = @file_get_contents(ABSPATH.$wp_config)) && strlen($config)) {
|
1182 |
-
if ($patch_found = preg_match($find, $config)) {
|
1183 |
-
if (strpos($config, substr($head, strpos($head, "file_exists")))) {
|
1184 |
-
if ($GOTMLS_nonce && isset($_POST["GOTMLS_patching"]) && GOTMLS_file_put_contents(ABSPATH.$wp_config, preg_replace('#'.$lt.'\?[ph\s]+(//.*\s*)*\?'.$gt.'#i', "", preg_replace($find, "", $config))))
|
1185 |
-
$patch_action .= $lt.'div class="error"'.$gt.__("Removed Brute-Force Protection",'gotmls').$lt.'/div'.$gt;
|
1186 |
-
else
|
1187 |
-
$patch_status = 1;
|
1188 |
-
} else {
|
1189 |
-
if ($GOTMLS_nonce && isset($_POST["GOTMLS_patching"]) && GOTMLS_file_put_contents(ABSPATH.$wp_config, preg_replace($find, "$head", $config))) {
|
1190 |
-
$patch_action .= $lt.'div class="updated"'.$gt.__("Upgraded Brute-Force Protection",'gotmls').$lt.'/div'.$gt;
|
1191 |
-
$patch_status = 1;
|
1192 |
-
} else
|
1193 |
-
$patch_status = 2;
|
1194 |
-
}
|
1195 |
-
} elseif ($GOTMLS_nonce && isset($_POST["GOTMLS_patching"]) && strlen($config) && ($patch_found == 0) && GOTMLS_file_put_contents(ABSPATH.$wp_config, "$lt?php$head// Load Brute-Force Protection by GOTMLS.NET before the WordPress bootstrap. ?$gt$config")) {
|
1196 |
-
$patch_action .= $lt.'div class="updated"'.$gt.__("Installed Brute-Force Protection",'gotmls').$lt.'/div'.$gt;
|
1197 |
-
$patch_status = 1;
|
1198 |
-
} elseif ($GOTMLS_nonce && isset($_POST["GOTMLS_patching"]))
|
1199 |
-
$patch_action .= $lt.'div class="updated"'.$gt.sprintf(__("Failed to install Brute-Force Protection (wp-config.php %s)",'gotmls'),(is_readable(ABSPATH.$wp_config)?'read-'.(is_writable(ABSPATH.$wp_config)?'write':'only'):"unreadable").": ".strlen($config).GOTMLS_fileperms(ABSPATH.$wp_config)).$lt.'/div'.$gt;
|
1200 |
-
} else
|
1201 |
-
$patch_action .= $lt.'div class="error"'.$gt.__("wp-config.php Not Readable!",'gotmls').$lt.'/div'.$gt;
|
1202 |
-
} else
|
1203 |
-
$patch_action .= $lt.'div class="error"'.$gt.__("wp-config.php Not Found!",'gotmls').$lt.'/div'.$gt;
|
1204 |
-
if ($GOTMLS_nonce && file_exists(ABSPATH.'wp-login.php') && ($login = @file_get_contents(ABSPATH.'wp-login.php')) && strlen($login) && (preg_match($find, $login))) {
|
1205 |
-
if (isset($_POST["GOTMLS_patching"]) && ($source = GOTMLS_get_URL("http://core.svn.wordpress.org/tags/".$wp_version.'/wp-login.php')) && (strlen($source) > 500) && GOTMLS_file_put_contents(ABSPATH.'wp-login.php', $source))
|
1206 |
-
$patch_action .= $lt.'div class="updated"'.$gt.__("Removed Old Brute-Force Login Patch",'gotmls').$lt.'/div'.$gt;
|
1207 |
-
else
|
1208 |
-
$patch_status = 2;
|
1209 |
-
}
|
1210 |
-
$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.'
|
1211 |
-
'.$patch_action.'
|
1212 |
-
'.$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";
|
1213 |
-
$admin_notice = "";
|
1214 |
-
if ($current_user->user_login == "admin") {
|
1215 |
-
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"])) {
|
1216 |
-
if ($wpdb->update($wpdb->users, array("user_login" => trim($_POST["GOTMLS_admin_username"])), array("user_login" => "admin")))
|
1217 |
-
$admin_notice .= $lt.'div class="updated"'.$gt.sprintf(__("You username has been change to %s. Don't forget to use your new username when you login again.",'gotmls'), $_POST["GOTMLS_admin_username"]).$lt.'/div'.$gt;
|
1218 |
-
else
|
1219 |
-
$admin_notice .= $lt.'div class="updated"'.$gt.sprintf(__("SQL Error changing username: %s. Please try again later.",'gotmls'), $wpdb->last_error).$lt.'/div'.$gt;
|
1220 |
-
} else {
|
1221 |
-
$admin_notice .= $lt.'hr /'.$gt;
|
1222 |
-
if (isset($_POST["GOTMLS_admin_username"]))
|
1223 |
-
$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;
|
1224 |
-
$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;
|
1225 |
-
}
|
1226 |
-
}
|
1227 |
-
echo GOTMLS_box(__("Firewall Options",'gotmls'), $sec_opts.$admin_notice);
|
1228 |
}
|
1229 |
echo "\n$lt/div$gt$lt/div$gt$lt/div$gt";
|
1230 |
}
|
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.49
|
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");
|
72 |
$my_admin_page = add_object_page($pageTitle, $pluginTitle, $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], $base_page, $base_function, $GOTMLS_Full_plugin_logo_URL);
|
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 |
+
add_submenu_page($base_page, "$pluginTitle Firewall Options", "Firewall Options", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["user_can"], "GOTMLS-Firewall-Options", "GOTMLS_Firewall_Options");
|
|
|
|
|
|
|
|
|
|
|
76 |
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");
|
77 |
}
|
78 |
|
721 |
echo $echo.GOTMLS_box(__("Scan Logs",'gotmls'), GOTMLS_get_scanlog())."\n</div></div></div>";
|
722 |
}
|
723 |
|
724 |
+
function GOTMLS_Firewall_Options() {
|
725 |
+
GOTMLS_update_definitions();
|
726 |
+
GOTMLS_display_header();
|
727 |
+
$GOTMLS_nonce_found = GOTMLS_get_nonce();
|
728 |
+
$gt = ">";
|
729 |
+
$lt = "<";
|
730 |
+
$patch_attr = array(
|
731 |
+
array(
|
732 |
+
"icon" => "blocked",
|
733 |
+
"language" => __("Your WordPress Login page is susceptible to a brute-force attack (just like any other login page). These types of attacks are becoming more prevalent these days and can sometimes cause your server to become slow or unresponsive, even if the attacks do not succeed in gaining access to your site. Applying this patch will block access to the WordPress Login page whenever this type of attack is detected."),
|
734 |
+
"status" => 'Not Installed',
|
735 |
+
"action" => 'Install Patch'
|
736 |
+
),
|
737 |
+
array(
|
738 |
+
"language" => __("Your WordPress site has the current version of my brute-force Login protection installed."),
|
739 |
+
"action" => 'Uninstall Patch',
|
740 |
+
"status" => 'Enabled',
|
741 |
+
"icon" => "checked"
|
742 |
+
),
|
743 |
+
array(
|
744 |
+
"language" => __("Your WordPress Login page has the old version of my brute-force protection installed. Upgrade this patch to improve the protection on the WordPress Login page and preserve the integrity of your WordPress core files."),
|
745 |
+
"action" => 'Upgrade Patch',
|
746 |
+
"status" => 'Out of Date',
|
747 |
+
"icon" => "threat"
|
748 |
+
)
|
749 |
+
);
|
750 |
+
$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 (';
|
751 |
+
$patch_found = false;
|
752 |
+
$find = '|<Files[^>]+xmlrpc.php>(.+?)</Files>\s*(# END GOTMLS Patch to Block XMLRPC Access\s*)*|is';
|
753 |
+
$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);
|
754 |
+
$htaccess = "";
|
755 |
+
if (is_file(ABSPATH.'.htaccess'))
|
756 |
+
if (($htaccess = @file_get_contents(ABSPATH.'.htaccess')) && strlen($htaccess))
|
757 |
+
$patch_found = preg_match($find, $htaccess);
|
758 |
+
if ($patch_found) {
|
759 |
+
if ($GOTMLS_nonce_found && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] < 0) && GOTMLS_file_put_contents(ABSPATH.'.htaccess', preg_replace($find, "", $htaccess)))
|
760 |
+
$patch_action .= $lt.'img src="'.GOTMLS_images_path.'checked.gif"'.$gt.' Now Allowing';
|
761 |
+
elseif ($GOTMLS_nonce_found && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] < 0))
|
762 |
+
$patch_action = str_replace('1"'.$gt.$lt.'input type="submit" value="Block', '-1"'.$gt.$lt.'input type="submit" value="Unblock', $patch_action).$lt.'img src="'.GOTMLS_images_path.'threat.gif"'.$gt.' Still Blocked: '.sprintf(__("Failed to remove XMLRPC Protection (.htaccess %s)",'gotmls'),(is_readable(ABSPATH.'.htaccess')?'read-'.(is_writable(ABSPATH.'.htaccess')?'write':'only'):"unreadable").": ".strlen($htaccess).GOTMLS_fileperms(ABSPATH.'.htaccess'));
|
763 |
+
else
|
764 |
+
$patch_action = str_replace('1"'.$gt.$lt.'input type="submit" value="Block', '-1"'.$gt.$lt.'input type="submit" value="Unblock', $patch_action).'Currently Blocked';
|
765 |
+
} else {
|
766 |
+
if ($GOTMLS_nonce_found && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] > 0) && GOTMLS_file_put_contents(ABSPATH.'.htaccess', "$head$htaccess"))
|
767 |
+
$patch_action = str_replace('1"'.$gt.$lt.'input type="submit" value="Block', '-1"'.$gt.$lt.'input type="submit" value="Unblock', $patch_action).$lt.'img src="'.GOTMLS_images_path.'checked.gif"'.$gt.' Now Blocking';
|
768 |
+
elseif ($GOTMLS_nonce_found && isset($_POST["GOTMLS_XMLRPC_patching"]) && ($_POST["GOTMLS_XMLRPC_patching"] > 0))
|
769 |
+
$patch_action .= $lt.'img src="'.GOTMLS_images_path.'threat.gif"'.$gt.' Still Allowed: '.sprintf(__("Failed to install XMLRPC Protection (.htaccess %s)",'gotmls'),(is_readable(ABSPATH.'.htaccess')?'read-'.(is_writable(ABSPATH.'.htaccess')?'write':'only'):"unreadable").": ".strlen($htaccess).GOTMLS_fileperms(ABSPATH.'.htaccess'));
|
770 |
+
else
|
771 |
+
$patch_action .= 'Currently Allowed';
|
772 |
+
}
|
773 |
+
$patch_action .= ")$lt/b$gt$lt/p$gt".__("Most WordPress site do not use the XMLRPC features and hack attempt on the xmlrpc.php file are more common then ever before. Even if there are no vulnerabilities for hackers to exploit these attempts can cause slowness or downtime similar to a DDoS attack. This patch automatically blocks all external access to the xmlrpc.php file.",'gotmls').$lt.'/div'.$gt.$lt.'/form'.$gt.$lt.'hr /'.$gt;
|
774 |
+
$patch_status = 0;
|
775 |
+
$patch_found = -1;
|
776 |
+
$find = "#if\s*\(([^\&]+\&\&)?\s*file_exists\((.+?)(safe-load|wp-login)\.php'\)\)\s*require(_once)?\((.+?)(safe-load|wp-login)\.php'\);#";
|
777 |
+
$head = str_replace(array('#', '\\(', '\\)', '(_once)?', ')\\.', '\\s*', '(.+?)(', '|', '([^\\&]+\\&\\&)?'), array(' ', '(', ')', '_once', '.', ' ', '\''.dirname(__FILE__).'/', '/', '!in_array($_SERVER["REMOTE_ADDR"], array("'.$_SERVER["REMOTE_ADDR"].'")) &&'), $find);
|
778 |
+
if (is_file(ABSPATH.'../wp-config.php') && !is_file(ABSPATH.'wp-config.php'))
|
779 |
+
$wp_config = '../wp-config.php';
|
780 |
+
else
|
781 |
+
$wp_config = 'wp-config.php';
|
782 |
+
if (is_file(ABSPATH.$wp_config)) {
|
783 |
+
if (($config = @file_get_contents(ABSPATH.$wp_config)) && strlen($config)) {
|
784 |
+
if ($patch_found = preg_match($find, $config)) {
|
785 |
+
if (strpos($config, substr($head, strpos($head, "file_exists")))) {
|
786 |
+
if ($GOTMLS_nonce_found && isset($_POST["GOTMLS_patching"]) && GOTMLS_file_put_contents(ABSPATH.$wp_config, preg_replace('#'.$lt.'\?[ph\s]+(//.*\s*)*\?'.$gt.'#i', "", preg_replace($find, "", $config))))
|
787 |
+
$patch_action .= $lt.'div class="error"'.$gt.__("Removed Brute-Force Protection",'gotmls').$lt.'/div'.$gt;
|
788 |
+
else
|
789 |
+
$patch_status = 1;
|
790 |
+
} else {
|
791 |
+
if ($GOTMLS_nonce_found && isset($_POST["GOTMLS_patching"]) && GOTMLS_file_put_contents(ABSPATH.$wp_config, preg_replace($find, "$head", $config))) {
|
792 |
+
$patch_action .= $lt.'div class="updated"'.$gt.__("Upgraded Brute-Force Protection",'gotmls').$lt.'/div'.$gt;
|
793 |
+
$patch_status = 1;
|
794 |
+
} else
|
795 |
+
$patch_status = 2;
|
796 |
+
}
|
797 |
+
} elseif ($GOTMLS_nonce_found && isset($_POST["GOTMLS_patching"]) && strlen($config) && ($patch_found == 0) && GOTMLS_file_put_contents(ABSPATH.$wp_config, "$lt?php$head// Load Brute-Force Protection by GOTMLS.NET before the WordPress bootstrap. ?$gt$config")) {
|
798 |
+
$patch_action .= $lt.'div class="updated"'.$gt.__("Installed Brute-Force Protection",'gotmls').$lt.'/div'.$gt;
|
799 |
+
$patch_status = 1;
|
800 |
+
} elseif ($GOTMLS_nonce_found && isset($_POST["GOTMLS_patching"]))
|
801 |
+
$patch_action .= $lt.'div class="updated"'.$gt.sprintf(__("Failed to install Brute-Force Protection (wp-config.php %s)",'gotmls'),(is_readable(ABSPATH.$wp_config)?'read-'.(is_writable(ABSPATH.$wp_config)?'write':'only'):"unreadable").": ".strlen($config).GOTMLS_fileperms(ABSPATH.$wp_config)).$lt.'/div'.$gt;
|
802 |
+
} else
|
803 |
+
$patch_action .= $lt.'div class="error"'.$gt.__("wp-config.php Not Readable!",'gotmls').$lt.'/div'.$gt;
|
804 |
+
} else
|
805 |
+
$patch_action .= $lt.'div class="error"'.$gt.__("wp-config.php Not Found!",'gotmls').$lt.'/div'.$gt;
|
806 |
+
if ($GOTMLS_nonce_found && file_exists(ABSPATH.'wp-login.php') && ($login = @file_get_contents(ABSPATH.'wp-login.php')) && strlen($login) && (preg_match($find, $login))) {
|
807 |
+
if (isset($_POST["GOTMLS_patching"]) && ($source = GOTMLS_get_URL("http://core.svn.wordpress.org/tags/".$wp_version.'/wp-login.php')) && (strlen($source) > 500) && GOTMLS_file_put_contents(ABSPATH.'wp-login.php', $source))
|
808 |
+
$patch_action .= $lt.'div class="updated"'.$gt.__("Removed Old Brute-Force Login Patch",'gotmls').$lt.'/div'.$gt;
|
809 |
+
else
|
810 |
+
$patch_status = 2;
|
811 |
+
}
|
812 |
+
$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.'
|
813 |
+
'.$patch_action.'
|
814 |
+
'.$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";
|
815 |
+
$admin_notice = "";
|
816 |
+
if ($current_user->user_login == "admin") {
|
817 |
+
if ($GOTMLS_nonce_found && 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"])) {
|
818 |
+
if ($wpdb->update($wpdb->users, array("user_login" => trim($_POST["GOTMLS_admin_username"])), array("user_login" => "admin")))
|
819 |
+
$admin_notice .= $lt.'div class="updated"'.$gt.sprintf(__("You username has been change to %s. Don't forget to use your new username when you login again.",'gotmls'), $_POST["GOTMLS_admin_username"]).$lt.'/div'.$gt;
|
820 |
+
else
|
821 |
+
$admin_notice .= $lt.'div class="updated"'.$gt.sprintf(__("SQL Error changing username: %s. Please try again later.",'gotmls'), $wpdb->last_error).$lt.'/div'.$gt;
|
822 |
+
} else {
|
823 |
+
$admin_notice .= $lt.'hr /'.$gt;
|
824 |
+
if (isset($_POST["GOTMLS_admin_username"]))
|
825 |
+
$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;
|
826 |
+
$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;
|
827 |
+
}
|
828 |
+
}
|
829 |
+
echo GOTMLS_box(__("Firewall Options",'gotmls'), $sec_opts.$admin_notice)."\n</div></div></div>";
|
830 |
+
}
|
831 |
+
|
832 |
function GOTMLS_update_definitions() {
|
833 |
global $wp_version;
|
834 |
$GOTMLS_definitions_versions = array();
|
879 |
$gt = ">";
|
880 |
$lt = "<";
|
881 |
GOTMLS_update_definitions();
|
882 |
+
if (($GOTMLS_nonce_found = GOTMLS_get_nonce()) && isset($_REQUEST["check"]) && is_array($_REQUEST["check"]))
|
883 |
$GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"] = $_REQUEST["check"];
|
884 |
/* $threat_names = array_keys($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"]);
|
885 |
foreach ($threat_names as $threat_name) {
|
959 |
$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;
|
960 |
}
|
961 |
$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";
|
962 |
+
$GOTMLS_nonce_URL = GOTMLS_set_nonce(__FUNCTION__."853");
|
963 |
+
$scan_opts = "\n$lt".'form method="POST" name="GOTMLS_Form"'.$gt.$lt.'input type="hidden" name="'.str_replace('=', '" value="', $GOTMLS_nonce_URL).'"'.$gt.$lt.'input type="hidden" name="scan_type" id="scan_type" value="Complete Scan" /'.$gt.$lt.'div style="float: right;"'.$gt.$lt.'input type="submit" id="complete_scan" value="'.__("Run Complete Scan",'gotmls').'" class="button-primary" onclick="document.getElementById(\'scan_type\').value=\'Complete Scan\';" /'.$gt.$lt.'/div'.$gt.'
|
964 |
'.$lt.'div style="float: left;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("What to look for:",'gotmls').$lt.'/b'.$gt.$lt.'/p'.$gt.'
|
965 |
'.$lt.'div style="padding: 0 30px;"'.$gt;
|
966 |
foreach ($GLOBALS["GOTMLS"]["tmp"]["threat_levels"] as $threat_level_name=>$threat_level) {
|
987 |
if (isset($_GET["SESSION"]) && isset($_SESSION["GOTMLS_debug"]['total'])) {$scan_opts .= $lt.'div style="float: right;"'.$gt.print_r($_SESSION["GOTMLS_debug"]['total'],1)."$lt/div$gt"; unset($_SESSION["GOTMLS_debug"]);}
|
988 |
if (isset($_GET["eli"])) {//still testing this option
|
989 |
$scan_opts .= "\n$lt".'div style="padding: 10px;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("Custom RegExp:",'gotmls').$lt.'/b'.$gt.' ('.__("For very advanced users only. Do not use this without talking to Eli first. If used incorrectly you could easily break your site.",'gotmls').')'.$lt.'/p'.$gt.$lt.'input type="text" name="check_custom" style="width: 100%;" value="'.htmlspecialchars($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check_custom"]).'" /'."$gt$lt/div$gt\n$lt".'div style="padding: 10px;"'.$gt.$lt.'p'.$gt.$lt.'b'.$gt.__("Custom Code to be Checked:",'gotmls').$lt.'/b'.$gt.' ('.__("For very advanced users only. If you enter anything in this box then no other files will be scanned on your site.",'gotmls').')'.$lt.'/p'.$gt.$lt.'textarea name="check_code" style="width: 100%;" rows=3'.$gt.htmlspecialchars($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check_code"])."$lt/textarea$gt$lt/div$gt\n";
|
990 |
+
}
|
991 |
+
$QuickScan = $lt.((is_dir(dirname(__FILE__)."/../../../wp-includes") && is_dir(dirname(__FILE__)."/../../../wp-admin"))?'a href="'.admin_url("admin.php?page=GOTMLS-settings&scan_type=Quick+Scan&$GOTMLS_nonce_URL").'" class="button-primary" style="height: 22px; line-height: 13px; padding: 3px;">WP_Core</a':"!-- No wp-includes or wp-admin --").$gt;
|
992 |
+
foreach (array("Plugins", "Themes") as $ScanFolder)
|
993 |
+
$QuickScan .= ' '.$lt.((is_dir(dirname(__FILE__)."/../../../wp-content/".strtolower($ScanFolder)))?'a href="'.admin_url("admin.php?page=GOTMLS-settings&scan_type=Quick+Scan&scan_only[]=wp-content/".strtolower($ScanFolder)."&$GOTMLS_nonce_URL")."\" class=\"button-primary\" style=\"height: 22px; line-height: 13px; padding: 3px;\"$gt$ScanFolder$lt/a":"!-- No $ScanFolder in wp-content --").$gt;
|
994 |
$scan_opts .= "\n$lt".'p'.$gt.$lt.'b'.$gt.__("Skip files with the following extentions:",'gotmls')."$lt/b$gt".(($default_exclude_ext!=implode(",", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_ext"]))?" {$lt}a href=\"javascript:void(0);\" onclick=\"document.getElementById('exclude_ext').value = '$default_exclude_ext';\"{$gt}[Restore Defaults]$lt/a$gt":"").$lt.'/p'.$gt.'
|
995 |
+
'.$lt.'div style="padding: 0 30px;"'.$gt.$lt.'input type="text" placeholder="'.__("a comma separated list of file extentions to skip",'gotmls').'" name="exclude_ext" id="exclude_ext" value="'.implode(",", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_ext"]).'" style="width: 100%;" /'."$gt$lt/div$gt$lt".'p'.$gt.$lt.'b'.$gt.__("Skip directories with the following names:",'gotmls')."$lt/b$gt$lt/p$gt$lt".'div style="padding: 0 30px;"'.$gt.$lt.'input type="text" placeholder="'.__("a folder name or comma separated list of folder names to skip",'gotmls').'" name="exclude_dir" value="'.implode(",", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_dir"]).'" style="width: 100%;" /'.$gt.$lt.'/div'.$gt.'
|
996 |
+
'.$lt.'table style="width: 100%" cellspacing="10"'.$gt.$lt.'tr'.$gt.$lt.'td nowrap valign="top" style="white-space: nowrap; width: 1px;"'.$gt.$lt.'b'.$gt.__("Automatically Update Definitions:",'gotmls').$lt."br$gt$lt/b$gt$lt/td$gt$lt".'td'.$gt.$lt.'div id="UPDATE_definitions_div"'.$gt.$lt.'br'.$gt.$lt.'span style="color: #C00;"'.$gt.__("This new BETA feature is only available to registered users who have donated at a certain level.",'gotmls')."$lt/span$gt$lt/div$gt$lt/td$gt$lt".'td align="right" valign="bottom"'.$gt.$lt.'input type="submit" id="save_settings" value="'.__("Save Settings",'gotmls').'" class="button-primary" onclick="document.getElementById(\'scan_type\').value=\'Save\';" /'."$gt$lt/td$gt$lt/tr$gt$lt/table$gt$lt/form$gt";
|
|
|
|
|
997 |
@ob_start();
|
998 |
$OB_default_handlers = array("default output handler", "zlib output compression");
|
999 |
$OB_handlers = @ob_list_handlers();
|
1100 |
if ($MAX > 11)
|
1101 |
$fix_button_js = "";
|
1102 |
}
|
1103 |
+
$ScanSettings = $lt.'div style="float: right;"'.$gt.GOTMLS_Run_Quick_Scan_LANGUAGE.": $QuickScan$lt/div$gt".GOTMLS_Scan_Settings_LANGUAGE;
|
1104 |
echo "/*--{$gt}*".'/
|
1105 |
document.getElementById("status_counts").innerHTML = divHTML+"'.$lt.'/ul'.$gt.'";
|
1106 |
document.getElementById("fix_button").style.display = dis;
|
1110 |
document.getElementById("only_what").innerHTML = document.getElementById("only"+what).innerHTML;
|
1111 |
}
|
1112 |
var startTime = 0;
|
1113 |
+
'.$lt.'/script'.$gt.GOTMLS_box($ScanSettings, $scan_opts);
|
1114 |
if (isset($_REQUEST["scan_type"]) && $_REQUEST["scan_type"] == "Save") {
|
1115 |
+
if ($GOTMLS_nonce_found) {
|
1116 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1117 |
echo "\n{$lt}script type='text/javascript'$gt\nalert('Settings Saved!');\n$lt/script$gt\n";
|
1118 |
} else
|
1119 |
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");
|
1120 |
} elseif (isset($_REQUEST["scan_what"]) && is_numeric($_REQUEST["scan_what"]) && ($_REQUEST["scan_what"] > -1)) {
|
1121 |
+
if ($GOTMLS_nonce_found) {
|
1122 |
update_option('GOTMLS_settings_array', $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
|
1123 |
if (!isset($_REQUEST["scan_type"]))
|
1124 |
$_REQUEST["scan_type"] = "Complete Scan";
|
1132 |
echo $lt.'input type="hidden" name="'.$name.'" value="'.htmlspecialchars($value).'"'.$gt;
|
1133 |
}
|
1134 |
}
|
1135 |
+
echo "\n$lt".'script type="text/javascript"'.$gt.'showhide("inside_'.md5($ScanSettings).'");'.$lt.'/script'.$gt.GOTMLS_box(htmlentities($_REQUEST["scan_type"]).' Status', $lt.'div id="status_text"'.$gt.$lt.'img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="..."'.$gt.' '.GOTMLS_Loading_LANGUAGE.$lt.'/div'.$gt.$lt.'div id="status_bar"'.$gt.$lt.'/div'.$gt.$lt.'p id="pause_button" style="display: none; position: absolute; left: 0; text-align: center; margin-left: -30px; padding-left: 50%;"'.$gt.$lt.'input type="button" value="Pause" class="button-primary" onclick="pauseresume(this);" id="resume_button" /'.$gt.$lt.'/p'.$gt.$lt.'div id="status_counts"'.$gt.$lt.'/div'.$gt.$lt.'p id="fix_button" style="display: none; text-align: center;"'.$gt.$lt.'input id="repair_button" type="submit" value="'.GOTMLS_Automatically_Fix_LANGUAGE.'" class="button-primary" onclick="loadIframe(\'Examine Results\');" /'.$gt.$lt.'/p'.$gt);
|
1136 |
$scan_groups_UL = "";
|
1137 |
foreach ($scan_groups as $scan_name => $scan_group)
|
1138 |
$scan_groups_UL .= "\n{$lt}ul name=\"found_$scan_group\" id=\"found_$scan_group\" class=\"GOTMLS_plugin $scan_group\" style=\"background-color: #ccc; display: none; padding: 0;\"$gt{$lt}a class=\"rounded-corners\" name=\"link_$scan_group\" style=\"float: right; padding: 0 4px; margin: 5px 5px 0 30px; line-height: 16px; text-decoration: none; color: #C00; background-color: #FCC; border: solid #F00 1px;\" href=\"#found_top\" onclick=\"showhide('found_$scan_group');\"{$gt}X$lt/a$gt{$lt}h3$gt$scan_name$lt/h3$gt\n".($scan_group=='potential'?$lt.'p'.$gt.' * '.__("NOTE: These are probably not malicious scripts (but it's a good place to start looking <u>IF</u> your site is infected and no Known Threats were found).",'gotmls').$lt.'/p'.$gt:($scan_group=='wp_core'?$lt.'p'.$gt.' * '.sprintf(__("NOTE: We have detected changes to the WordPress Core files on your site. This could be an intentional modification or the malicious work of a hacker. We can restore these files to their original state to preserve the integrity of your original WordPress %s installation.",'gotmls'), $wp_version).' (for more info '.$lt.'a target="_blank" href="http://gotmls.net/tag/wp-core-files/"'.$gt.__("read my blog",'gotmls').$lt.'/a'.$gt.').'.$lt.'/p'.$gt:$lt.'br /'.$gt)).$lt.'/ul'.$gt;
|
1230 |
echo "/*--{$gt}*"."/\n$lt/script$gt";
|
1231 |
} else
|
1232 |
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");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1233 |
}
|
1234 |
echo "\n$lt/div$gt$lt/div$gt$lt/div$gt";
|
1235 |
}
|
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-
|
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"
|
@@ -17,597 +17,597 @@ msgstr ""
|
|
17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
20 |
-
#: index.php:
|
21 |
msgid "Getting Started"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: index.php:
|
25 |
msgid "Make sure the Definition Updates are current and Run a Complete Scan."
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: index.php:
|
29 |
#, php-format
|
30 |
msgid "If Known Threats are found and displayed in red then there will be a button to '%s'. If only Potentional Threats are found then there is no automatic fix because those are probably not malicious."
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: index.php:
|
34 |
msgid "A backup of the original infected files are placed in the Quarantine in case you need to restore them or just want to look at them later. You can delete these files if you don't want to save more."
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: index.php:
|
38 |
msgid "FAQs"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: index.php:
|
42 |
msgid "Main Menu Item placed at the <b>Top</b>"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: index.php:
|
46 |
msgid "Main Menu Item placed at the <b>Bottom</b>"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: index.php:
|
50 |
msgid "Main Menu Item placed below <b>Comments</b> and above <b>Appearance</b>"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: index.php:
|
54 |
msgid "Main Menu Item placed below <b>Settings</b>"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: index.php:
|
58 |
msgid "Menu Item Placement Options"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: index.php:
|
62 |
msgid "Menu Placement"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: index.php:
|
66 |
msgid "Tested your site. It appears we didn't break anything"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: index.php:
|
70 |
#, php-format
|
71 |
msgid "Upgrade to %s now!"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: index.php:
|
75 |
msgid "Searching for updates ..."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: index.php:
|
79 |
msgid "If this is taking too long, click here."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: index.php:
|
83 |
msgid "No response from server!"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: index.php:
|
87 |
msgid "Updates & Registration"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: index.php:
|
91 |
msgid "Get FREE Key!"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: index.php:
|
95 |
msgid "Download new definitions!"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: index.php:
|
99 |
msgid "<p>Get instant access to definition updates.</p>"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: index.php:
|
103 |
msgid "If you have not already registered your Key then register now using the form below.<br />* All registration fields are required<br />** I will NOT share your information."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: index.php:
|
107 |
msgid "Your Full Name:"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: index.php:
|
111 |
msgid "A password will be e-mailed to this address:"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: index.php:
|
115 |
msgid "Your WordPress Site URL:"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: index.php:
|
119 |
msgid "Plugin Installation Key:"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: index.php:
|
123 |
msgid "Please make a donation for the use of this wonderful feature!"
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: index.php:
|
127 |
msgid "First Name is a required field!"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: index.php:
|
131 |
msgid "Last Name is a required field!"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: index.php:
|
135 |
msgid "Email Address is a required field!"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: index.php:
|
139 |
msgid "Your WordPress Site URL is a required field!"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: index.php:
|
143 |
msgid "Plugin Installation Key is a required field!"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: index.php:
|
147 |
msgid "Submitting Registration ..."
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: index.php:
|
151 |
msgid "Resources & Links"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: index.php:
|
155 |
msgid "Make a Donation with PayPal"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: index.php:
|
159 |
msgid "Last Scan Status"
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: index.php:
|
163 |
#, php-format
|
164 |
msgid "Cleared %s records from this log."
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: index.php:
|
168 |
msgid "No Scans have been logged"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: index.php:
|
172 |
msgid "Globally White-listed files"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: index.php:
|
176 |
msgid "# of patterns"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: index.php:
|
180 |
msgid "Date Updated"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: index.php:
|
184 |
msgid "WordPress Core files"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: index.php:
|
188 |
msgid "# of files"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: index.php:
|
192 |
msgid "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."
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: index.php:
|
196 |
msgid "Restore selected files"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: index.php:
|
200 |
msgid "Are you sure you want to overwrite the previously cleaned files with the selected files in the Quarantine?"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: index.php:
|
204 |
msgid "Delete selected files"
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: index.php:
|
208 |
msgid "Are you sure you want to permanently delete the selected files in the Quarantine?"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: index.php:
|
212 |
msgid "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."
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: index.php:
|
216 |
#, php-format
|
217 |
msgid "Check all %d"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: index.php:
|
221 |
msgid " Items in Quarantine"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: index.php:
|
225 |
msgid "Quarantined"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: index.php:
|
229 |
msgid "Date Infected"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: index.php:
|
233 |
msgid "View Quarantined File"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: index.php:
|
237 |
msgid "No Items in Quarantine"
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: index.php:
|
241 |
#, php-format
|
242 |
msgid "Clear %s Deleted Files from the Trash"
|
243 |
msgstr ""
|
244 |
|
245 |
-
#: index.php:
|
246 |
msgid "White-lists"
|
247 |
msgstr ""
|
248 |
|
249 |
-
#: index.php:
|
250 |
msgid "Quarantine"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: index.php:
|
254 |
msgid "Scan Logs"
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: index.php:
|
258 |
-
msgid "
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: index.php:
|
262 |
-
msgid "
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: index.php:
|
266 |
-
msgid "
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: index.php:
|
270 |
-
msgid "
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: index.php:
|
274 |
-
|
|
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: index.php:
|
278 |
-
|
|
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: index.php:
|
282 |
-
|
|
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: index.php:
|
286 |
-
|
|
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: index.php:
|
290 |
-
msgid "
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: index.php:
|
294 |
-
msgid "
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: index.php:
|
298 |
-
msgid "
|
299 |
msgstr ""
|
300 |
|
301 |
-
#: index.php:
|
302 |
-
msgid "
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: index.php:
|
306 |
-
|
|
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: index.php:
|
310 |
-
msgid "
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: index.php:
|
314 |
-
msgid "
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: index.php:
|
318 |
-
msgid "
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: index.php:
|
322 |
-
msgid "
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: index.php:
|
326 |
-
msgid "
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: index.php:
|
330 |
-
msgid "
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: index.php:
|
334 |
-
|
|
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: index.php:
|
338 |
#, php-format
|
339 |
-
msgid "
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: index.php:
|
343 |
-
|
|
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: index.php:
|
347 |
-
|
|
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: index.php:
|
351 |
-
msgid "
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: index.php:
|
355 |
-
msgid "
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: index.php:
|
359 |
-
msgid "
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: index.php:
|
363 |
-
msgid "
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: index.php:
|
367 |
-
msgid "
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: index.php:
|
371 |
-
|
372 |
-
msgid "Potential Threats"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: index.php:
|
376 |
-
msgid "
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: index.php:
|
380 |
-
msgid "
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: index.php:
|
384 |
-
msgid "
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: index.php:
|
388 |
-
msgid "
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: index.php:
|
392 |
-
msgid "
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: index.php:
|
396 |
-
|
397 |
-
msgid "NOTE: We have detected changes to the WordPress Core files on your site. This could be an intentional modification or the malicious work of a hacker. We can restore these files to their original state to preserve the integrity of your original WordPress %s installation."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: index.php:
|
401 |
-
|
402 |
-
msgid "read my blog"
|
403 |
msgstr ""
|
404 |
|
405 |
-
#: index.php:
|
406 |
-
msgid "
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: index.php:
|
410 |
-
|
411 |
-
msgid "Not flushing OB Handlers: %s"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: index.php:
|
415 |
-
msgid "
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: index.php:
|
419 |
-
msgid "
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: index.php:
|
423 |
-
msgid "
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: index.php:
|
427 |
-
msgid "
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: index.php:
|
431 |
-
msgid "
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: index.php:
|
435 |
-
msgid "
|
436 |
msgstr ""
|
437 |
|
438 |
-
#: index.php:
|
439 |
-
msgid "
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: index.php:
|
443 |
-
msgid "
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: index.php:
|
447 |
-
|
448 |
-
msgid "
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: index.php:
|
452 |
-
|
453 |
-
msgid "This feature is available to those who have donated!"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: index.php:
|
457 |
-
|
458 |
-
msgid "Failed to remove XMLRPC Protection (.htaccess %s)"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: index.php:
|
462 |
-
|
463 |
-
msgid "Failed to install XMLRPC Protection (.htaccess %s)"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: index.php:
|
467 |
-
msgid "
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: index.php:
|
471 |
-
msgid "
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: index.php:
|
475 |
-
msgid "
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: index.php:
|
479 |
-
msgid "
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: index.php:
|
483 |
-
|
484 |
-
msgid "
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: index.php:
|
488 |
-
msgid "
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: index.php:
|
492 |
-
msgid "
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: index.php:
|
496 |
-
msgid "
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: index.php:
|
500 |
-
msgid "
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: index.php:
|
504 |
-
msgid "
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: index.php:
|
508 |
-
|
|
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: index.php:
|
512 |
-
|
513 |
-
msgid "You username has been change to %s. Don't forget to use your new username when you login again."
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: index.php:
|
517 |
#, php-format
|
518 |
-
msgid "
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: index.php:
|
522 |
-
|
523 |
-
msgid "Your new username must be at least 3 characters and can only contain "%s". Please try again."
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: index.php:
|
527 |
-
msgid "
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: index.php:
|
531 |
-
msgid "
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: index.php:
|
535 |
-
msgid "
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: index.php:
|
539 |
msgid "Default position"
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: index.php:
|
543 |
msgid "New position"
|
544 |
msgstr ""
|
545 |
|
546 |
-
#: index.php:
|
547 |
msgid "saved."
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: index.php:
|
551 |
msgid "Failed to empty the trash."
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: index.php:
|
555 |
-
#: index.php:
|
556 |
-
#: index.php:
|
557 |
msgid "Done!"
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: index.php:
|
561 |
msgid "Failed to delete!"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: index.php:
|
565 |
msgid "Complete!"
|
566 |
msgstr ""
|
567 |
|
568 |
-
#: index.php:
|
569 |
msgid "Restore Failed!"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: index.php:
|
573 |
msgid "File "
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: index.php:
|
577 |
#, php-format
|
578 |
msgid "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."
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: index.php:
|
582 |
msgid "Never mind, it worked!"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: index.php:
|
586 |
msgid "Nothing Selected to be Changed!"
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: index.php:
|
590 |
msgid "Are you sure you want to delete this file from the quarantine?"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: index.php:
|
594 |
msgid "File Details:"
|
595 |
msgstr ""
|
596 |
|
597 |
-
#: index.php:
|
598 |
msgid "This file no longer exists in the quarantine."
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: index.php:
|
602 |
#, php-format
|
603 |
msgid "The file %s does not exist, it must have already been deleted."
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: index.php:
|
607 |
msgid "Are you sure this file is not infected and you want to ignore it in future scans?"
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: index.php:
|
611 |
msgid "Potential threats in file:"
|
612 |
msgstr ""
|
613 |
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: GOTMLS\n"
|
10 |
"Report-Msgid-Bugs-To: eli@gotmls.net\n"
|
11 |
+
"POT-Creation-Date: 2015-12-12 09:04-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"
|
17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
20 |
+
#: index.php:83
|
21 |
msgid "Getting Started"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: index.php:84
|
25 |
msgid "Make sure the Definition Updates are current and Run a Complete Scan."
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: index.php:84
|
29 |
#, php-format
|
30 |
msgid "If Known Threats are found and displayed in red then there will be a button to '%s'. If only Potentional Threats are found then there is no automatic fix because those are probably not malicious."
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: index.php:84
|
34 |
msgid "A backup of the original infected files are placed in the Quarantine in case you need to restore them or just want to look at them later. You can delete these files if you don't want to save more."
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: index.php:90
|
38 |
msgid "FAQs"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: index.php:95
|
42 |
msgid "Main Menu Item placed at the <b>Top</b>"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: index.php:95
|
46 |
msgid "Main Menu Item placed at the <b>Bottom</b>"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: index.php:97
|
50 |
msgid "Main Menu Item placed below <b>Comments</b> and above <b>Appearance</b>"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: index.php:97
|
54 |
msgid "Main Menu Item placed below <b>Settings</b>"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: index.php:98
|
58 |
msgid "Menu Item Placement Options"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: index.php:103
|
62 |
msgid "Menu Placement"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: index.php:122
|
66 |
msgid "Tested your site. It appears we didn't break anything"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: index.php:131
|
70 |
#, php-format
|
71 |
msgid "Upgrade to %s now!"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: index.php:136
|
75 |
msgid "Searching for updates ..."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: index.php:191
|
79 |
msgid "If this is taking too long, click here."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: index.php:269
|
83 |
msgid "No response from server!"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: index.php:365
|
87 |
msgid "Updates & Registration"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: index.php:368
|
91 |
msgid "Get FREE Key!"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: index.php:373
|
95 |
msgid "Download new definitions!"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: index.php:376
|
99 |
msgid "<p>Get instant access to definition updates.</p>"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: index.php:377
|
103 |
msgid "If you have not already registered your Key then register now using the form below.<br />* All registration fields are required<br />** I will NOT share your information."
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: index.php:379
|
107 |
msgid "Your Full Name:"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: index.php:383
|
111 |
msgid "A password will be e-mailed to this address:"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: index.php:386
|
115 |
msgid "Your WordPress Site URL:"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: index.php:389
|
119 |
msgid "Plugin Installation Key:"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: index.php:406
|
123 |
msgid "Please make a donation for the use of this wonderful feature!"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: index.php:412
|
127 |
msgid "First Name is a required field!"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: index.php:414
|
131 |
msgid "Last Name is a required field!"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: index.php:416
|
135 |
msgid "Email Address is a required field!"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: index.php:424
|
139 |
msgid "Your WordPress Site URL is a required field!"
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: index.php:426
|
143 |
msgid "Plugin Installation Key is a required field!"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: index.php:431
|
147 |
msgid "Submitting Registration ..."
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: index.php:452
|
151 |
msgid "Resources & Links"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: index.php:475
|
155 |
msgid "Make a Donation with PayPal"
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: index.php:491
|
159 |
msgid "Last Scan Status"
|
160 |
msgstr ""
|
161 |
|
162 |
+
#: index.php:550
|
163 |
#, php-format
|
164 |
msgid "Cleared %s records from this log."
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: index.php:592
|
168 |
msgid "No Scans have been logged"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: index.php:599
|
172 |
msgid "Globally White-listed files"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: index.php:599
|
176 |
msgid "# of patterns"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: index.php:599
|
180 |
msgid "Date Updated"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: index.php:609
|
184 |
msgid "WordPress Core files"
|
185 |
msgstr ""
|
186 |
|
187 |
+
#: index.php:609
|
188 |
msgid "# of files"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: index.php:683
|
192 |
msgid "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."
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: index.php:690
|
196 |
msgid "Restore selected files"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: index.php:690
|
200 |
msgid "Are you sure you want to overwrite the previously cleaned files with the selected files in the Quarantine?"
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: index.php:690
|
204 |
msgid "Delete selected files"
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: index.php:690
|
208 |
msgid "Are you sure you want to permanently delete the selected files in the Quarantine?"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: index.php:690
|
212 |
msgid "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."
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: index.php:691
|
216 |
#, php-format
|
217 |
msgid "Check all %d"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: index.php:691
|
221 |
msgid " Items in Quarantine"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: index.php:691
|
225 |
msgid "Quarantined"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: index.php:691
|
229 |
msgid "Date Infected"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: index.php:696
|
233 |
msgid "View Quarantined File"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: index.php:703
|
237 |
msgid "No Items in Quarantine"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: index.php:708
|
241 |
#, php-format
|
242 |
msgid "Clear %s Deleted Files from the Trash"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: index.php:714
|
246 |
msgid "White-lists"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: index.php:717
|
250 |
msgid "Quarantine"
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: index.php:721
|
254 |
msgid "Scan Logs"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: index.php:733
|
258 |
+
msgid "Your WordPress Login page is susceptible to a brute-force attack (just like any other login page). These types of attacks are becoming more prevalent these days and can sometimes cause your server to become slow or unresponsive, even if the attacks do not succeed in gaining access to your site. Applying this patch will block access to the WordPress Login page whenever this type of attack is detected."
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: index.php:738
|
262 |
+
msgid "Your WordPress site has the current version of my brute-force Login protection installed."
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: index.php:744
|
266 |
+
msgid "Your WordPress Login page has the old version of my brute-force protection installed. Upgrade this patch to improve the protection on the WordPress Login page and preserve the integrity of your WordPress core files."
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: index.php:750
|
270 |
+
msgid "Checking .htaccess file ..."
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: index.php:750
|
274 |
+
#: images/index.php:71
|
275 |
+
msgid "You must register and donate to use this feature!"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: index.php:750
|
279 |
+
#: images/index.php:71
|
280 |
+
msgid "This feature is available to those who have donated!"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: index.php:762
|
284 |
+
#, php-format
|
285 |
+
msgid "Failed to remove XMLRPC Protection (.htaccess %s)"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: index.php:769
|
289 |
+
#, php-format
|
290 |
+
msgid "Failed to install XMLRPC Protection (.htaccess %s)"
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: index.php:773
|
294 |
+
msgid "Most WordPress site do not use the XMLRPC features and hack attempt on the xmlrpc.php file are more common then ever before. Even if there are no vulnerabilities for hackers to exploit these attempts can cause slowness or downtime similar to a DDoS attack. This patch automatically blocks all external access to the xmlrpc.php file."
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: index.php:787
|
298 |
+
msgid "Removed Brute-Force Protection"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: index.php:792
|
302 |
+
msgid "Upgraded Brute-Force Protection"
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: index.php:798
|
306 |
+
msgid "Installed Brute-Force Protection"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: index.php:801
|
310 |
+
#, php-format
|
311 |
+
msgid "Failed to install Brute-Force Protection (wp-config.php %s)"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: index.php:803
|
315 |
+
msgid "wp-config.php Not Readable!"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: index.php:805
|
319 |
+
msgid "wp-config.php Not Found!"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: index.php:808
|
323 |
+
msgid "Removed Old Brute-Force Login Patch"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: index.php:812
|
327 |
+
msgid "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."
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: index.php:814
|
331 |
+
msgid "Checking for session compatibility ..."
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: index.php:814
|
335 |
+
msgid " For more information on Brute-Force attack prevention and the WordPress wp-login-php file "
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: index.php:814
|
339 |
+
#: index.php:1138
|
340 |
+
msgid "read my blog"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: index.php:819
|
344 |
#, php-format
|
345 |
+
msgid "You username has been change to %s. Don't forget to use your new username when you login again."
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: index.php:821
|
349 |
+
#, php-format
|
350 |
+
msgid "SQL Error changing username: %s. Please try again later."
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: index.php:825
|
354 |
+
#, php-format
|
355 |
+
msgid "Your new username must be at least 3 characters and can only contain "%s". Please try again."
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: index.php:826
|
359 |
+
msgid "Change your username:"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: index.php:826
|
363 |
+
msgid "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."
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: index.php:829
|
367 |
+
msgid "Firewall Options"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: index.php:959
|
371 |
+
msgid "Only Scan These Folders:"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: index.php:963
|
375 |
+
msgid "Run Complete Scan"
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: index.php:964
|
379 |
+
msgid "What to look for:"
|
|
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: index.php:979
|
383 |
+
msgid "Download Definition Updates to Use this feature"
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: index.php:979
|
387 |
+
msgid "Download the new definitions (Right sidebar) to activate this feature."
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: index.php:983
|
391 |
+
msgid "What to scan:"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: index.php:985
|
395 |
+
msgid "Scan Depth:"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: index.php:986
|
399 |
+
msgid "how far to drill down"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: index.php:986
|
403 |
+
msgid "-1 is infinite depth"
|
|
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: index.php:989
|
407 |
+
msgid "Custom RegExp:"
|
|
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: index.php:989
|
411 |
+
msgid "For very advanced users only. Do not use this without talking to Eli first. If used incorrectly you could easily break your site."
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: index.php:989
|
415 |
+
msgid "Custom Code to be Checked:"
|
|
|
416 |
msgstr ""
|
417 |
|
418 |
+
#: index.php:989
|
419 |
+
msgid "For very advanced users only. If you enter anything in this box then no other files will be scanned on your site."
|
420 |
msgstr ""
|
421 |
|
422 |
+
#: index.php:994
|
423 |
+
msgid "Skip files with the following extentions:"
|
424 |
msgstr ""
|
425 |
|
426 |
+
#: index.php:995
|
427 |
+
msgid "a comma separated list of file extentions to skip"
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: index.php:995
|
431 |
+
msgid "Skip directories with the following names:"
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: index.php:995
|
435 |
+
msgid "a folder name or comma separated list of folder names to skip"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: index.php:996
|
439 |
+
msgid "Automatically Update Definitions:"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: index.php:996
|
443 |
+
msgid "This new BETA feature is only available to registered users who have donated at a certain level."
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: index.php:996
|
447 |
+
msgid "Save Settings"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: index.php:1003
|
451 |
+
#, php-format
|
452 |
+
msgid "Another Plugin or Theme is using '%s' to handle output buffers. <br />This prevents actively outputing the buffer on-the-fly and will severely degrade the performance of this (and many other) Plugins. <br />Consider disabling caching and compression plugins (at least during the scanning process)."
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: index.php:1005
|
456 |
+
msgid "Scanned Files"
|
|
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: index.php:1005
|
460 |
+
msgid "Selected Folders"
|
|
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: index.php:1005
|
464 |
+
msgid "Scanned Folders"
|
|
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: index.php:1005
|
468 |
+
msgid "Skipped Folders"
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: index.php:1005
|
472 |
+
msgid "Skipped Files"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: index.php:1005
|
476 |
+
msgid "Read/Write Errors"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: index.php:1005
|
480 |
+
msgid "Quarantined Files"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: index.php:1017
|
484 |
+
#: images/index.php:32
|
485 |
+
msgid "Potential Threats"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: index.php:1017
|
489 |
+
msgid "WP-Login Updates"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: index.php:1049
|
493 |
+
msgid "Scan Complete!"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: index.php:1094
|
497 |
+
msgid "You are not currently scanning for this type of threat!"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: index.php:1119
|
501 |
+
msgid "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."
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: index.php:1138
|
505 |
+
msgid "NOTE: These are probably not malicious scripts (but it's a good place to start looking <u>IF</u> your site is infected and no Known Threats were found)."
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: index.php:1138
|
509 |
+
#, php-format
|
510 |
+
msgid "NOTE: We have detected changes to the WordPress Core files on your site. This could be an intentional modification or the malicious work of a hacker. We can restore these files to their original state to preserve the integrity of your original WordPress %s installation."
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: index.php:1141
|
514 |
+
msgid "Scan Details:"
|
|
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: index.php:1142
|
518 |
#, php-format
|
519 |
+
msgid "Not flushing OB Handlers: %s"
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: index.php:1161
|
523 |
+
msgid "The Quick Scan was unable to finish because of a shortage of memory or a problem accessing a file. Please try using the Complete Scan, it is slower but it will handle these errors better and continue scanning the rest of the files."
|
|
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: index.php:1179
|
527 |
+
msgid "Completed!"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: index.php:1181
|
531 |
+
msgid "Starting Scan ..."
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: index.php:1232
|
535 |
+
msgid "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."
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: index.php:1320
|
539 |
msgid "Default position"
|
540 |
msgstr ""
|
541 |
|
542 |
+
#: index.php:1342
|
543 |
msgid "New position"
|
544 |
msgstr ""
|
545 |
|
546 |
+
#: index.php:1346
|
547 |
msgid "saved."
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: index.php:1360
|
551 |
msgid "Failed to empty the trash."
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: index.php:1413
|
555 |
+
#: index.php:1449
|
556 |
+
#: index.php:1451
|
557 |
msgid "Done!"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: index.php:1416
|
561 |
msgid "Failed to delete!"
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: index.php:1424
|
565 |
msgid "Complete!"
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: index.php:1427
|
569 |
msgid "Restore Failed!"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: index.php:1443
|
573 |
msgid "File "
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: index.php:1447
|
577 |
#, php-format
|
578 |
msgid "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."
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: index.php:1447
|
582 |
msgid "Never mind, it worked!"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: index.php:1449
|
586 |
msgid "Nothing Selected to be Changed!"
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: index.php:1518
|
590 |
msgid "Are you sure you want to delete this file from the quarantine?"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: index.php:1518
|
594 |
msgid "File Details:"
|
595 |
msgstr ""
|
596 |
|
597 |
+
#: index.php:1520
|
598 |
msgid "This file no longer exists in the quarantine."
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: index.php:1537
|
602 |
#, php-format
|
603 |
msgid "The file %s does not exist, it must have already been deleted."
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: index.php:1579
|
607 |
msgid "Are you sure this file is not infected and you want to ignore it in future scans?"
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: index.php:1579
|
611 |
msgid "Potential threats in file:"
|
612 |
msgstr ""
|
613 |
|
readme.txt
CHANGED
@@ -4,11 +4,11 @@ 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:
|
8 |
-
Version: 4.15.
|
9 |
-
Stable tag: 4.15.
|
10 |
Requires at least: 3.3
|
11 |
-
Tested up to: 4.
|
12 |
|
13 |
This Anti-Malware scanner searches for Malware, Viruses, and other security threats and vulnerabilities on your server and it helps you fix them.
|
14 |
|
@@ -16,24 +16,22 @@ This Anti-Malware scanner searches for Malware, Viruses, and other security thre
|
|
16 |
|
17 |
**Features:**
|
18 |
|
19 |
-
*
|
20 |
-
*
|
21 |
* Upgrade vulnerable versions of timthumb scripts.
|
22 |
-
* Run a Quick Scan from the admin menu.
|
23 |
-
* Run a Complete Scan from the Settings Page.
|
24 |
* Download Definition Updates to protect against new threats.
|
25 |
|
26 |
**Premium Features:**
|
27 |
|
28 |
-
* Patch wp-login to block Brute-Force attacks.
|
29 |
* Check the integrity of your WordPress Core files.
|
30 |
-
* Automatically
|
31 |
|
32 |
-
Updated
|
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 |
|
36 |
-
NOTICE: This plugin make
|
37 |
|
38 |
**Special thanks to:**
|
39 |
|
@@ -45,7 +43,7 @@ NOTICE: This plugin make use of a "phone home" feature to check for updates. Thi
|
|
45 |
|
46 |
1. Download and unzip the plugin into your WordPress plugins directory (usually `/wp-content/plugins/`).
|
47 |
1. Activate the plugin through the 'Plugins' menu in your WordPress Admin.
|
48 |
-
1. Register on gotmls.net and download the newest definition
|
49 |
|
50 |
== Frequently Asked Questions ==
|
51 |
|
@@ -95,6 +93,10 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
|
|
95 |
|
96 |
== Changelog ==
|
97 |
|
|
|
|
|
|
|
|
|
98 |
= 4.15.46 =
|
99 |
* Fixed PHP Warning about in_array function expecting parameter 2 to be an array, found by Georgey B.
|
100 |
* Made a few minor cosmetic changes and fixed a few other small bugs in the interface.
|
@@ -379,6 +381,9 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
|
|
379 |
|
380 |
== Upgrade Notice ==
|
381 |
|
|
|
|
|
|
|
382 |
= 4.15.46 =
|
383 |
Made a few minor cosmetic changes and fixed a few small bugs including a PHP Warning about in_array function expecting parameter 2 to be an array.
|
384 |
|
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: security, firewall, anti-malware, 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.49
|
9 |
+
Stable tag: 4.15.49
|
10 |
Requires at least: 3.3
|
11 |
+
Tested up to: 4.4
|
12 |
|
13 |
This Anti-Malware scanner searches for Malware, Viruses, and other security threats and vulnerabilities on your server and it helps you fix them.
|
14 |
|
16 |
|
17 |
**Features:**
|
18 |
|
19 |
+
* Run a Complete Scan to automatically remove known security threats and backdoor scripts.
|
20 |
+
* Firewall block SoakSoak and other malware from exploiting Revolution Slider and other plugins from known vulnerabilites.
|
21 |
* Upgrade vulnerable versions of timthumb scripts.
|
|
|
|
|
22 |
* Download Definition Updates to protect against new threats.
|
23 |
|
24 |
**Premium Features:**
|
25 |
|
26 |
+
* Patch your wp-login and XMLRPC to block Brute-Force and DDoS attacks.
|
27 |
* Check the integrity of your WordPress Core files.
|
28 |
+
* Automatically download new Definition Updates when running a Complete Scan.
|
29 |
|
30 |
+
Updated December 11th
|
31 |
|
32 |
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.
|
33 |
|
34 |
+
NOTICE: This plugin make call to GOTMLS.NET to check for updates not unlike what WordPress does when checking your plugins and themes for new versions. Staying up-to-date is an essential part of any security plugin and this plugin can let you know when there are new plugin and definition update available. If you're allergic to "phone home" scripts then don't use this plugin (or WordPress at all for that matter).
|
35 |
|
36 |
**Special thanks to:**
|
37 |
|
43 |
|
44 |
1. Download and unzip the plugin into your WordPress plugins directory (usually `/wp-content/plugins/`).
|
45 |
1. Activate the plugin through the 'Plugins' menu in your WordPress Admin.
|
46 |
+
1. Register on gotmls.net and download the newest definition updates to scan for Known Threats.
|
47 |
|
48 |
== Frequently Asked Questions ==
|
49 |
|
93 |
|
94 |
== Changelog ==
|
95 |
|
96 |
+
= 4.15.49 =
|
97 |
+
* Moved the Firewall Options to it's own page linked to from the admin menu.
|
98 |
+
* Moved the Quick Scan from the admin menu to the top of the Scan Settings page.
|
99 |
+
|
100 |
= 4.15.46 =
|
101 |
* Fixed PHP Warning about in_array function expecting parameter 2 to be an array, found by Georgey B.
|
102 |
* Made a few minor cosmetic changes and fixed a few other small bugs in the interface.
|
381 |
|
382 |
== Upgrade Notice ==
|
383 |
|
384 |
+
= 4.15.49 =
|
385 |
+
Moved the Firewall Options to it's own page and moved the Quick Scan to the top of the Scan Settings page.
|
386 |
+
|
387 |
= 4.15.46 =
|
388 |
Made a few minor cosmetic changes and fixed a few small bugs including a PHP Warning about in_array function expecting parameter 2 to be an array.
|
389 |
|