Anti-Malware Security and Brute-Force Firewall - Version 4.15.46

Version Description

  • Fixed PHP Warning about in_array function expecting parameter 2 to be an array, found by Georgey B.
  • Made a few minor cosmetic changes and fixed a few other small bugs in the interface.
Download this release

Release Info

Developer scheeeli
Plugin Icon 128x128 Anti-Malware Security and Brute-Force Firewall
Version 4.15.46
Comparing to
See all releases

Code changes from version 4.15.45 to 4.15.46

Files changed (4) hide show
  1. images/index.php +1 -1
  2. index.php +33 -42
  3. languages/gotmls.pot +147 -134
  4. readme.txt +11 -4
images/index.php CHANGED
@@ -542,7 +542,7 @@ function GOTMLS_return_threat($className, $imageFile, $fileName, $link = "") {
542
  return $li_js."\n/*<!--*"."/";
543
  }
544
 
545
- function GOTMLS_slash($dir = __file__) {
546
  if (substr($dir.' ', 1, 1) == ':' || substr($dir.' ', 0, 1) == "\\")
547
  return "\\";
548
  else
542
  return $li_js."\n/*<!--*"."/";
543
  }
544
 
545
+ function GOTMLS_slash($dir = __FILE__) {
546
  if (substr($dir.' ', 1, 1) == ':' || substr($dir.' ', 0, 1) == "\\")
547
  return "\\";
548
  else
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.45
12
  */
13
  if (isset($_SERVER["DOCUMENT_ROOT"]) && ($SCRIPT_FILE = str_replace($_SERVER["DOCUMENT_ROOT"], "", isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:isset($_SERVER["SCRIPT_NAME"])?$_SERVER["SCRIPT_NAME"]:"")) && strlen($SCRIPT_FILE) > strlen("/".basename(__FILE__)) && substr(__FILE__, -1 * strlen($SCRIPT_FILE)) == substr($SCRIPT_FILE, -1 * strlen(__FILE__)))
14
  include(dirname(__FILE__)."/safe-load/index.php");
@@ -137,6 +137,7 @@ function GOTMLS_display_header($optional_box = "") {
137
  $Update_Link .= wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=').$file, 'upgrade-plugin_'.$file);
138
  }
139
  $Update_Link .= "\">$new_version</a></div>";
 
140
  $Update_Div ='<div id="findUpdates" style="display: none;"><center>'.__("Searching for updates ...",'gotmls').'<br /><img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="Wait..." /><br /><input type="button" value="Cancel" onclick="cancelserver(\'findUpdates\');" /></center></div>';
141
  echo '
142
  span.GOTMLS_date {float: right; width: 130px; white-space: nowrap;}
@@ -158,7 +159,7 @@ span.GOTMLS_date {float: right; width: 130px; white-space: nowrap;}
158
  .GOTMLS_plugin {margin: 5px; background: #cfc; border: 1px solid #0f0; padding: 0 5px; border-radius: 3px;}
159
  .GOTMLS_plugin.known, .GOTMLS_plugin.backdoor, .GOTMLS_plugin.htaccess, .GOTMLS_plugin.timthumb, .GOTMLS_plugin.errors {background: #f99; border: 1px solid #f00;}
160
  .GOTMLS_plugin.potential, .GOTMLS_plugin.wp_core, .GOTMLS_plugin.skipdirs, .GOTMLS_plugin.skipped {background: #ffc; border: 1px solid #fc6;}
161
- .GOTMLS ul li {margin-left: 20px;}
162
  .GOTMLS h2 {margin: 0 0 10px;}
163
  .postbox {margin-right: 10px;}
164
  #pastDonations li {list-style: none;}
@@ -369,7 +370,7 @@ setDiv("div_file");
369
  '.GOTMLS_box(__("Updates & Registration",'gotmls'), '<ul style=""><li>WordPress: <span class="GOTMLS_date">'.$wp_version.'</span></li>
370
  <li>Plugin: <span class="GOTMLS_date">'.GOTMLS_Version.'</span></li>
371
  <li>Definitions: <span class="GOTMLS_date">'.$GLOBALS["GOTMLS"]["tmp"]["Definition"]["Latest"].'</span></li>
372
- <li>Key: <span style="float: right;">'.GOTMLS_installation_key.'</span></li></ul>
373
  <form id="updateform" method="post" name="updateform" action="'.str_replace("GOTMLS_mt=", "GOTMLS_last_mt=", GOTMLS_script_URI).'&'.GOTMLS_set_nonce(__FUNCTION__."373").'">
374
  <img style="display: none; float: right; margin-right: 14px;" src="'.GOTMLS_images_path.'checked.gif" height=16 width=16 alt="definitions file updated" id="autoUpdateDownload" onclick="showhide(\'autoUpdateForm\', true);">
375
  '.str_replace('findUpdates', 'Definition_Updates', $Update_Div).'
@@ -377,7 +378,7 @@ setDiv("div_file");
377
  <input type="submit" style="width: 100%;" name="auto_update" value="'.__("Download new definitions!",'gotmls').'">
378
  </div>
379
  </form>
380
- <div id="registerKeyForm" style="display: none;"><span style="color: #F00">'.__("<p>Get instant access to definition updates.</p>",'gotmls').'</span><input type="button" style="width: 100%;" value="'.__("Check for Definition Updates Now!",'gotmls').'" onclick="check_for_updates(\'Definition_Updates\');" /><p>
381
  '.__("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.",'gotmls').'</p>
382
  <form id="registerform" onsubmit="return sinupFormValidate(this);" action="'.GOTMLS_plugin_home.'wp-login.php?action=register" method="post" name="registerform" target="GOTMLS_iFrame"><input type="hidden" name="redirect_to" id="register_redirect_to" value="/donate/"><input type="hidden" name="user_login" id="register_user_login" value="">
383
  <div>'.__("Your Full Name:",'gotmls').'</div>
@@ -404,12 +405,6 @@ setDiv("div_file");
404
  check_for_donation(chk);
405
  }
406
  }
407
- function check_for_registration() {
408
- if ('.preg_replace('/[^0-9]/', "", GOTMLS_sexagesimal($GLOBALS["GOTMLS"]["tmp"]["Definition"]["Latest"])).'0 > '.preg_replace('/[^0-9]/', "", GOTMLS_sexagesimal($GLOBALS["GOTMLS"]["tmp"]["Definition"]["Default"])).'0)
409
- return true;
410
- else
411
- return false;
412
- }
413
  function check_for_donation(chk) {
414
  if (document.getElementById("autoUpdateDownload").src.replace(/^.+\?/,"")=="0")
415
  if (chk.substr(0, 8) != "Changed " || chk.substr(8, 1) != "0")
@@ -451,10 +446,9 @@ setDiv("div_file");
451
  setDivNAtext();
452
  '.$GLOBALS["GOTMLS"]["tmp"]["onLoad"].'
453
  }
454
- if (check_for_registration())
455
  check_for_updates("Definition_Updates");
456
- else
457
- showhide("registerKeyForm", true);
458
  if (divNAtext)
459
  loadGOTMLS();
460
  else
@@ -572,7 +566,6 @@ function GOTMLS_get_scanlog() {
572
  $LastScan .= htmlentities($GOTMLS_scan_log["scan"]["type"]);
573
  else
574
  $LastScan .= "Unknown scan type";
575
- //eli fix $GOTMLS_scan_log["scan"]["dir"] not init'd
576
  if (isset($GOTMLS_scan_log["scan"]["dir"]) && is_dir($GOTMLS_scan_log["scan"]["dir"]))
577
  $LastScan .= " of ".basename($GOTMLS_scan_log["scan"]["dir"]);
578
  if (isset($GOTMLS_scan_log["scan"]["start"]) && is_numeric($GOTMLS_scan_log["scan"]["start"])) {
@@ -697,11 +690,11 @@ function GOTMLS_get_quarantine($only = false) {
697
  $my_query = new WP_Query($args);
698
  $Q_Paged = '<form method="POST" name="GOTMLS_Form_page"><input type="hidden" id="GOTMLS_paged" name="paged" value="1"><div style="float: left;">Page:</div>';
699
  $Q_Page = '
700
- <form method="POST" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce(__FUNCTION__."700")).(isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"?".$_SERVER["QUERY_STRING"]:"").'" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"><input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1"><input type="hidden" name="action" value="GOTMLS_fix">';
701
  if ($my_query->have_posts()) {
702
  $Q_Page .= '<p id="quarantine_buttons" style="display: none;"><input id="repair_button" type="submit" value="'.__("Restore selected files",'gotmls').'" class="button-primary" onclick="if (confirm(\''.__("Are you sure you want to overwrite the previously cleaned files with the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(1); loadIframe(\'File Restoration Results\'); } else return false;" /><input id="delete_button" type="submit" class="button-primary" value="'.__("Delete selected files",'gotmls').'" onclick="if (confirm(\''.__("Are you sure you want to permanently delete the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(2); loadIframe(\'File Deletion Results\'); } else return false;" /></p><p><b>'.__("The following items have been found to contain malicious code, they have been cleaned, and the original infected file contents have been saved here in the Quarantine. The code is safe here and you do not need to do anything further with these files.",'gotmls').'</b></p>
703
- <ul name="found_Quarantine" id="found_Quarantine" class="GOTMLS_plugin known" style="background-color: #ccc; padding: 0;"><h3>'.($my_query->post_count>1?'<input type="checkbox" onchange="checkAllFiles(this.checked); document.getElementById(\'quarantine_buttons\').style.display = \'block\';"> '.sprintf(__("Check all %d",'gotmls'),$my_query->post_count):"").__(" Items in Quarantine",'gotmls').'<span class="GOTMLS_date">Date Quarantined</span><span class="GOTMLS_date">Date Infected</span></h3>';
704
- $root_path = implode(GOTMLS_slash(), array_slice(GOTMLS_explode_dir(__file__), 0, (2 + intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"])) * -1));
705
  while ($my_query->have_posts()) {
706
  $my_query->the_post();
707
  $Q_Page .= '
@@ -717,7 +710,7 @@ function GOTMLS_get_quarantine($only = false) {
717
  }
718
  $return = "$Q_Paged\n</form><br style=\"clear: left;\" />\n$Q_Page\n</form>\n$Q_Paged\n</form><br style=\"clear: left;\" />\n";
719
  if (($trashed = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE `post_type` = 'GOTMLS_quarantine' AND `post_status` != 'private'")) > 1)
720
- $return = "<a href='".admin_url('admin-ajax.php?action=GOTMLS_empty_trash&'.GOTMLS_set_nonce(__FUNCTION__."720"))."' id='empty_trash_link' style='float: right;' target='GOTMLS_statusFrame'>[Clear $trashed Deleted Files from the Trash]</a>".$return;
721
  return $return;
722
  }
723
 
@@ -783,9 +776,8 @@ function GOTMLS_settings() {
783
  $gt = ">";
784
  $lt = "<";
785
  GOTMLS_update_definitions();
786
- if ($GOTMLS_nonce = GOTMLS_get_nonce()) {
787
- if (isset($_REQUEST["check"]) && is_array($_REQUEST["check"]))
788
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"] = $_REQUEST["check"];
789
  /* $threat_names = array_keys($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"]);
790
  foreach ($threat_names as $threat_name) {
791
  if (isset($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"][$threat_name]) && is_array($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"][$threat_name]) && count($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"][$threat_name]) > 1) {
@@ -798,16 +790,13 @@ function GOTMLS_settings() {
798
  }
799
  }
800
  }*/
801
- if (!isset($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"])) {
802
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"] = $GLOBALS["GOTMLS"]["tmp"]["threat_levels"];
803
- update_option("GOTMLS_settings_array", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
804
- }
805
  }
806
- $dirs = GOTMLS_explode_dir(__file__);
807
  for ($SL=0;$SL<intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"]);$SL++)
808
  $GOTMLS_scan_groups[] = $lt.'b'.$gt.implode(GOTMLS_slash(), array_slice($dirs, -1 * (3 + $SL), 1)).$lt.'/b'.$gt;
809
- if (isset($_POST["check"]))
810
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"] = $_POST["check"];
811
  if (isset($_POST["exclude_ext"])) {
812
  if (strlen(trim(str_replace(",","",$_POST["exclude_ext"]).' ')) > 0)
813
  $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_ext"] = preg_split('/[\s]*([,]+[\s]*)+/', trim(str_replace('.', ',', htmlentities($_POST["exclude_ext"]))), -1, PREG_SPLIT_NO_EMPTY);
@@ -1256,14 +1245,14 @@ add_action('wp_ajax_nopriv_GOTMLS_logintime', 'GOTMLS_ajax_logintime');
1256
  add_action('wp_ajax_GOTMLS_logintime', 'GOTMLS_ajax_logintime');
1257
 
1258
  function GOTMLS_set_plugin_action_links($links_array, $plugin_file) {
1259
- if ($plugin_file == substr(str_replace("\\", "/", __file__), (-1 * strlen($plugin_file))) && strlen($plugin_file) > 10)
1260
  $links_array = array_merge(array('<a href="'.admin_url('admin.php?page=GOTMLS-settings').'"><span class="dashicons dashicons-admin-settings"></span>'.GOTMLS_Scan_Settings_LANGUAGE.'</a>'), $links_array);
1261
  return $links_array;
1262
  }
1263
  add_filter("plugin_action_links", "GOTMLS_set_plugin_action_links", 1, 2);
1264
 
1265
  function GOTMLS_set_plugin_row_meta($links_array, $plugin_file) {
1266
- if ($plugin_file == substr(str_replace("\\", "/", __file__), (-1 * strlen($plugin_file))) && strlen($plugin_file) > 10)
1267
  $links_array = array_merge($links_array, array('<a target="_blank" href="http://gotmls.net/faqs/">FAQ</a>','<a target="_blank" href="http://gotmls.net/support/">Support</a>','<a target="_blank" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE"><span class="dashicons dashicons-heart"></span>Donate</a>'));
1268
  return $links_array;
1269
  }
@@ -1306,16 +1295,18 @@ function GOTMLS_init() {
1306
  $scan_level = intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"]);
1307
  else
1308
  $scan_level = count(explode('/', trailingslashit(get_option("siteurl")))) - 1;
1309
- if (isset($_REQUEST["dont_check"]) && is_array($_REQUEST["dont_check"]) && count($_REQUEST["dont_check"]))
1310
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"] = $_REQUEST["dont_check"];
1311
- elseif (isset($_POST["scan_type"]) || !(isset($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"]) && is_array($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"])))
1312
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"] = array();
1313
- if (isset($_POST["scan_level"]) && is_numeric($_POST["scan_level"]))
1314
- $scan_level = intval($_POST["scan_level"]);
1315
- if (isset($scan_level) && is_numeric($scan_level))
1316
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"] = intval($scan_level);
1317
- else
1318
- $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"] = count(explode('/', trailingslashit(get_option("siteurl")))) - 1;
 
 
1319
  }
1320
  add_action("admin_init", "GOTMLS_init");
1321
 
@@ -1408,7 +1399,7 @@ function GOTMLS_ajax_fix() {
1408
  GOTMLS_update_scan_log(array("scan" => array("dir" => count($_REQUEST["GOTMLS_fix"])." Files", "start" => time())));
1409
  foreach ($_REQUEST["GOTMLS_fix"] as $clean_file) {
1410
  if (is_numeric($clean_file)) {
1411
- if (($Q_post = GOTMLS_get_quarantine($clean_file)) && isset($Q_post["post_type"]) && $Q_post["post_type"] == "GOTMLS_quarantine" && isset($Q_post["post_status"]) && $Q_post["post_status"] == "private") {
1412
  $path = $Q_post["post_title"];
1413
  if ($_REQUEST["GOTMLS_fixing"] > 1) {
1414
  echo "<li>Removing $path ... ";
@@ -1435,7 +1426,7 @@ function GOTMLS_ajax_fix() {
1435
  }
1436
  echo "</li>\n$li_js/*-->*"."/\n$callAlert\n</script>\n";
1437
  $li_js = "<script type=\"text/javascript\">\n/*<!--*"."/";
1438
- }
1439
  } else {
1440
  $path = realpath(GOTMLS_decode($clean_file));
1441
  if (is_file($path)) {
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.46
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");
137
  $Update_Link .= wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=').$file, 'upgrade-plugin_'.$file);
138
  }
139
  $Update_Link .= "\">$new_version</a></div>";
140
+ $defLatest = (is_numeric($Latest = preg_replace('/[^0-9]/', "", GOTMLS_sexagesimal($GLOBALS["GOTMLS"]["tmp"]["Definition"]["Latest"]))) && is_numeric($Default = preg_replace('/[^0-9]/', "", GOTMLS_sexagesimal($GLOBALS["GOTMLS"]["tmp"]["Definition"]["Default"]))) && $Latest > $Default)?1:0;
141
  $Update_Div ='<div id="findUpdates" style="display: none;"><center>'.__("Searching for updates ...",'gotmls').'<br /><img src="'.GOTMLS_images_path.'wait.gif" height=16 width=16 alt="Wait..." /><br /><input type="button" value="Cancel" onclick="cancelserver(\'findUpdates\');" /></center></div>';
142
  echo '
143
  span.GOTMLS_date {float: right; width: 130px; white-space: nowrap;}
159
  .GOTMLS_plugin {margin: 5px; background: #cfc; border: 1px solid #0f0; padding: 0 5px; border-radius: 3px;}
160
  .GOTMLS_plugin.known, .GOTMLS_plugin.backdoor, .GOTMLS_plugin.htaccess, .GOTMLS_plugin.timthumb, .GOTMLS_plugin.errors {background: #f99; border: 1px solid #f00;}
161
  .GOTMLS_plugin.potential, .GOTMLS_plugin.wp_core, .GOTMLS_plugin.skipdirs, .GOTMLS_plugin.skipped {background: #ffc; border: 1px solid #fc6;}
162
+ .GOTMLS ul li {margin-left: 12px;}
163
  .GOTMLS h2 {margin: 0 0 10px;}
164
  .postbox {margin-right: 10px;}
165
  #pastDonations li {list-style: none;}
370
  '.GOTMLS_box(__("Updates & Registration",'gotmls'), '<ul style=""><li>WordPress: <span class="GOTMLS_date">'.$wp_version.'</span></li>
371
  <li>Plugin: <span class="GOTMLS_date">'.GOTMLS_Version.'</span></li>
372
  <li>Definitions: <span class="GOTMLS_date">'.$GLOBALS["GOTMLS"]["tmp"]["Definition"]["Latest"].'</span></li>
373
+ <li>'.(!$defLatest?'<span style="color: #F00;" id="GOTMLS_No_Key">No Key! <input type="button" style="float: right;" value="'.__("Get FREE Key!",'gotmls').'" class="button-primary" onclick="showhide(\'GOTMLS_No_Key\');showhide(\'GOTMLS_Key\', true);check_for_updates(\'Definition_Updates\');" /></span><div id="GOTMLS_Key" style="display: none; ':'<div style="').'margin: 0;">Key: <span style="float: right;">'.GOTMLS_installation_key.'</span></div></li></ul>
374
  <form id="updateform" method="post" name="updateform" action="'.str_replace("GOTMLS_mt=", "GOTMLS_last_mt=", GOTMLS_script_URI).'&'.GOTMLS_set_nonce(__FUNCTION__."373").'">
375
  <img style="display: none; float: right; margin-right: 14px;" src="'.GOTMLS_images_path.'checked.gif" height=16 width=16 alt="definitions file updated" id="autoUpdateDownload" onclick="showhide(\'autoUpdateForm\', true);">
376
  '.str_replace('findUpdates', 'Definition_Updates', $Update_Div).'
378
  <input type="submit" style="width: 100%;" name="auto_update" value="'.__("Download new definitions!",'gotmls').'">
379
  </div>
380
  </form>
381
+ <div id="registerKeyForm" style="display: none;"><span style="color: #F00">'.__("<p>Get instant access to definition updates.</p>",'gotmls').'</span><p>
382
  '.__("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.",'gotmls').'</p>
383
  <form id="registerform" onsubmit="return sinupFormValidate(this);" action="'.GOTMLS_plugin_home.'wp-login.php?action=register" method="post" name="registerform" target="GOTMLS_iFrame"><input type="hidden" name="redirect_to" id="register_redirect_to" value="/donate/"><input type="hidden" name="user_login" id="register_user_login" value="">
384
  <div>'.__("Your Full Name:",'gotmls').'</div>
405
  check_for_donation(chk);
406
  }
407
  }
 
 
 
 
 
 
408
  function check_for_donation(chk) {
409
  if (document.getElementById("autoUpdateDownload").src.replace(/^.+\?/,"")=="0")
410
  if (chk.substr(0, 8) != "Changed " || chk.substr(8, 1) != "0")
446
  setDivNAtext();
447
  '.$GLOBALS["GOTMLS"]["tmp"]["onLoad"].'
448
  }
449
+ if ('.$defLatest.')
450
  check_for_updates("Definition_Updates");
451
+ // else showhide("registerKeyForm", true);
 
452
  if (divNAtext)
453
  loadGOTMLS();
454
  else
566
  $LastScan .= htmlentities($GOTMLS_scan_log["scan"]["type"]);
567
  else
568
  $LastScan .= "Unknown scan type";
 
569
  if (isset($GOTMLS_scan_log["scan"]["dir"]) && is_dir($GOTMLS_scan_log["scan"]["dir"]))
570
  $LastScan .= " of ".basename($GOTMLS_scan_log["scan"]["dir"]);
571
  if (isset($GOTMLS_scan_log["scan"]["start"]) && is_numeric($GOTMLS_scan_log["scan"]["start"])) {
690
  $my_query = new WP_Query($args);
691
  $Q_Paged = '<form method="POST" name="GOTMLS_Form_page"><input type="hidden" id="GOTMLS_paged" name="paged" value="1"><div style="float: left;">Page:</div>';
692
  $Q_Page = '
693
+ <form method="POST" action="'.admin_url('admin-ajax.php?'.GOTMLS_set_nonce(__FUNCTION__."700")).(isset($_SERVER["QUERY_STRING"])&&strlen($_SERVER["QUERY_STRING"])?"&".$_SERVER["QUERY_STRING"]:"").'" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"><input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1"><input type="hidden" name="action" value="GOTMLS_fix">';
694
  if ($my_query->have_posts()) {
695
  $Q_Page .= '<p id="quarantine_buttons" style="display: none;"><input id="repair_button" type="submit" value="'.__("Restore selected files",'gotmls').'" class="button-primary" onclick="if (confirm(\''.__("Are you sure you want to overwrite the previously cleaned files with the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(1); loadIframe(\'File Restoration Results\'); } else return false;" /><input id="delete_button" type="submit" class="button-primary" value="'.__("Delete selected files",'gotmls').'" onclick="if (confirm(\''.__("Are you sure you want to permanently delete the selected files in the Quarantine?",'gotmls').'\')) { setvalAllFiles(2); loadIframe(\'File Deletion Results\'); } else return false;" /></p><p><b>'.__("The following items have been found to contain malicious code, they have been cleaned, and the original infected file contents have been saved here in the Quarantine. The code is safe here and you do not need to do anything further with these files.",'gotmls').'</b></p>
696
+ <ul name="found_Quarantine" id="found_Quarantine" class="GOTMLS_plugin known" style="background-color: #ccc; padding: 0;"><h3 style="margin: 8px 12px;">'.($my_query->post_count>1?'<input type="checkbox" onchange="checkAllFiles(this.checked); document.getElementById(\'quarantine_buttons\').style.display = \'block\';"> '.sprintf(__("Check all %d",'gotmls'),$my_query->post_count):"").__(" Items in Quarantine",'gotmls').'<span class="GOTMLS_date">'.__("Quarantined",'gotmls').'</span><span class="GOTMLS_date">'.__("Date Infected",'gotmls').'</span></h3>';
697
+ $root_path = implode(GOTMLS_slash(), array_slice(GOTMLS_explode_dir(__FILE__), 0, (2 + intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"])) * -1));
698
  while ($my_query->have_posts()) {
699
  $my_query->the_post();
700
  $Q_Page .= '
710
  }
711
  $return = "$Q_Paged\n</form><br style=\"clear: left;\" />\n$Q_Page\n</form>\n$Q_Paged\n</form><br style=\"clear: left;\" />\n";
712
  if (($trashed = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE `post_type` = 'GOTMLS_quarantine' AND `post_status` != 'private'")) > 1)
713
+ $return = '<a href="'.admin_url('admin-ajax.php?action=GOTMLS_empty_trash&'.GOTMLS_set_nonce(__FUNCTION__."720")).'" id="empty_trash_link" style="float: right;" target="GOTMLS_statusFrame">['.sprintf(__("Clear %s Deleted Files from the Trash",'gotmls'), $trashed)."]</a>$return";
714
  return $return;
715
  }
716
 
776
  $gt = ">";
777
  $lt = "<";
778
  GOTMLS_update_definitions();
779
+ if (($GOTMLS_nonce = GOTMLS_get_nonce()) && isset($_REQUEST["check"]) && is_array($_REQUEST["check"]))
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) {
783
  if (isset($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"][$threat_name]) && is_array($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"][$threat_name]) && count($GLOBALS["GOTMLS"]["tmp"]["definitions_array"]["known"][$threat_name]) > 1) {
790
  }
791
  }
792
  }*/
793
+ if (!isset($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"])) {
794
+ $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["check"] = $GLOBALS["GOTMLS"]["tmp"]["threat_levels"];
795
+ update_option("GOTMLS_settings_array", $GLOBALS["GOTMLS"]["tmp"]["settings_array"]);
 
796
  }
797
+ $dirs = GOTMLS_explode_dir(__FILE__);
798
  for ($SL=0;$SL<intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"]);$SL++)
799
  $GOTMLS_scan_groups[] = $lt.'b'.$gt.implode(GOTMLS_slash(), array_slice($dirs, -1 * (3 + $SL), 1)).$lt.'/b'.$gt;
 
 
800
  if (isset($_POST["exclude_ext"])) {
801
  if (strlen(trim(str_replace(",","",$_POST["exclude_ext"]).' ')) > 0)
802
  $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["exclude_ext"] = preg_split('/[\s]*([,]+[\s]*)+/', trim(str_replace('.', ',', htmlentities($_POST["exclude_ext"]))), -1, PREG_SPLIT_NO_EMPTY);
1245
  add_action('wp_ajax_GOTMLS_logintime', 'GOTMLS_ajax_logintime');
1246
 
1247
  function GOTMLS_set_plugin_action_links($links_array, $plugin_file) {
1248
+ if ($plugin_file == substr(str_replace("\\", "/", __FILE__), (-1 * strlen($plugin_file))) && strlen($plugin_file) > 10)
1249
  $links_array = array_merge(array('<a href="'.admin_url('admin.php?page=GOTMLS-settings').'"><span class="dashicons dashicons-admin-settings"></span>'.GOTMLS_Scan_Settings_LANGUAGE.'</a>'), $links_array);
1250
  return $links_array;
1251
  }
1252
  add_filter("plugin_action_links", "GOTMLS_set_plugin_action_links", 1, 2);
1253
 
1254
  function GOTMLS_set_plugin_row_meta($links_array, $plugin_file) {
1255
+ if ($plugin_file == substr(str_replace("\\", "/", __FILE__), (-1 * strlen($plugin_file))) && strlen($plugin_file) > 10)
1256
  $links_array = array_merge($links_array, array('<a target="_blank" href="http://gotmls.net/faqs/">FAQ</a>','<a target="_blank" href="http://gotmls.net/support/">Support</a>','<a target="_blank" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE"><span class="dashicons dashicons-heart"></span>Donate</a>'));
1257
  return $links_array;
1258
  }
1295
  $scan_level = intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"]);
1296
  else
1297
  $scan_level = count(explode('/', trailingslashit(get_option("siteurl")))) - 1;
1298
+ if (GOTMLS_get_nonce()) {
1299
+ if (isset($_REQUEST["dont_check"]) && is_array($_REQUEST["dont_check"]) && count($_REQUEST["dont_check"]))
1300
+ $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"] = $_REQUEST["dont_check"];
1301
+ elseif (isset($_POST["scan_type"]) || !(isset($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"]) && is_array($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"])))
1302
+ $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["dont_check"] = array();
1303
+ if (isset($_POST["scan_level"]) && is_numeric($_POST["scan_level"]))
1304
+ $scan_level = intval($_POST["scan_level"]);
1305
+ if (isset($scan_level) && is_numeric($scan_level))
1306
+ $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"] = intval($scan_level);
1307
+ else
1308
+ $GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"] = count(explode('/', trailingslashit(get_option("siteurl")))) - 1;
1309
+ }
1310
  }
1311
  add_action("admin_init", "GOTMLS_init");
1312
 
1399
  GOTMLS_update_scan_log(array("scan" => array("dir" => count($_REQUEST["GOTMLS_fix"])." Files", "start" => time())));
1400
  foreach ($_REQUEST["GOTMLS_fix"] as $clean_file) {
1401
  if (is_numeric($clean_file)) {
1402
+ if (($Q_post = GOTMLS_get_quarantine($clean_file)) && isset($Q_post["post_type"]) && strtolower($Q_post["post_type"]) == "gotmls_quarantine" && isset($Q_post["post_status"]) && strtolower($Q_post["post_status"]) == "private") {
1403
  $path = $Q_post["post_title"];
1404
  if ($_REQUEST["GOTMLS_fixing"] > 1) {
1405
  echo "<li>Removing $path ... ";
1426
  }
1427
  echo "</li>\n$li_js/*-->*"."/\n$callAlert\n</script>\n";
1428
  $li_js = "<script type=\"text/javascript\">\n/*<!--*"."/";
1429
+ }//else print_r(array("i:$clean_file"=>$Q_post));
1430
  } else {
1431
  $path = realpath(GOTMLS_decode($clean_file));
1432
  if (is_file($path)) {
languages/gotmls.pot CHANGED
@@ -8,7 +8,7 @@ msgid ""
8
  msgstr ""
9
  "Project-Id-Version: GOTMLS\n"
10
  "Report-Msgid-Bugs-To: eli@gotmls.net\n"
11
- "POT-Creation-Date: 2015-11-13 10:08-1000\n"
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -71,530 +71,543 @@ msgstr ""
71
  msgid "Upgrade to %s now!"
72
  msgstr ""
73
 
74
- #: index.php:140
75
  msgid "Searching for updates ..."
76
  msgstr ""
77
 
78
- #: index.php:195
79
  msgid "If this is taking too long, click here."
80
  msgstr ""
81
 
82
- #: index.php:273
83
  msgid "No response from server!"
84
  msgstr ""
85
 
86
- #: index.php:369
87
  msgid "Updates & Registration"
88
  msgstr ""
89
 
90
- #: index.php:377
91
- msgid "Download new definitions!"
92
  msgstr ""
93
 
94
- #: index.php:380
95
- msgid "<p>Get instant access to definition updates.</p>"
96
  msgstr ""
97
 
98
- #: index.php:380
99
- msgid "Check for Definition Updates Now!"
100
  msgstr ""
101
 
102
- #: index.php:381
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:383
107
  msgid "Your Full Name:"
108
  msgstr ""
109
 
110
- #: index.php:387
111
  msgid "A password will be e-mailed to this address:"
112
  msgstr ""
113
 
114
- #: index.php:390
115
  msgid "Your WordPress Site URL:"
116
  msgstr ""
117
 
118
- #: index.php:393
119
  msgid "Plugin Installation Key:"
120
  msgstr ""
121
 
122
- #: index.php:416
123
  msgid "Please make a donation for the use of this wonderful feature!"
124
  msgstr ""
125
 
126
- #: index.php:422
127
  msgid "First Name is a required field!"
128
  msgstr ""
129
 
130
- #: index.php:424
131
  msgid "Last Name is a required field!"
132
  msgstr ""
133
 
134
- #: index.php:426
135
  msgid "Email Address is a required field!"
136
  msgstr ""
137
 
138
- #: index.php:434
139
  msgid "Your WordPress Site URL is a required field!"
140
  msgstr ""
141
 
142
- #: index.php:436
143
  msgid "Plugin Installation Key is a required field!"
144
  msgstr ""
145
 
146
- #: index.php:441
147
  msgid "Submitting Registration ..."
148
  msgstr ""
149
 
150
- #: index.php:463
151
  msgid "Resources & Links"
152
  msgstr ""
153
 
154
- #: index.php:486
155
  msgid "Make a Donation with PayPal"
156
  msgstr ""
157
 
158
- #: index.php:502
159
  msgid "Last Scan Status"
160
  msgstr ""
161
 
162
- #: index.php:561
163
  #, php-format
164
  msgid "Cleared %s records from this log."
165
  msgstr ""
166
 
167
- #: index.php:604
168
  msgid "No Scans have been logged"
169
  msgstr ""
170
 
171
- #: index.php:611
172
  msgid "Globally White-listed files"
173
  msgstr ""
174
 
175
- #: index.php:611
176
  msgid "# of patterns"
177
  msgstr ""
178
 
179
- #: index.php:611
180
  msgid "Date Updated"
181
  msgstr ""
182
 
183
- #: index.php:621
184
  msgid "WordPress Core files"
185
  msgstr ""
186
 
187
- #: index.php:621
188
  msgid "# of files"
189
  msgstr ""
190
 
191
- #: index.php:695
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:702
196
  msgid "Restore selected files"
197
  msgstr ""
198
 
199
- #: index.php:702
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:702
204
  msgid "Delete selected files"
205
  msgstr ""
206
 
207
- #: index.php:702
208
  msgid "Are you sure you want to permanently delete the selected files in the Quarantine?"
209
  msgstr ""
210
 
211
- #: index.php:702
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:703
216
  #, php-format
217
  msgid "Check all %d"
218
  msgstr ""
219
 
220
- #: index.php:703
221
  msgid " Items in Quarantine"
222
  msgstr ""
223
 
224
- #: index.php:708
 
 
 
 
 
 
 
 
225
  msgid "View Quarantined File"
226
  msgstr ""
227
 
228
- #: index.php:715
229
  msgid "No Items in Quarantine"
230
  msgstr ""
231
 
232
- #: index.php:726
 
 
 
 
 
233
  msgid "White-lists"
234
  msgstr ""
235
 
236
- #: index.php:729
237
  msgid "Quarantine"
238
  msgstr ""
239
 
240
- #: index.php:733
241
  msgid "Scan Logs"
242
  msgstr ""
243
 
244
- #: index.php:867
245
  msgid "Only Scan These Folders:"
246
  msgstr ""
247
 
248
- #: index.php:871
249
  msgid "What to look for:"
250
  msgstr ""
251
 
252
- #: index.php:886
253
  msgid "Download Definition Updates to Use this feature"
254
  msgstr ""
255
 
256
- #: index.php:886
257
  msgid "Download the new definitions (Right sidebar) to activate this feature."
258
  msgstr ""
259
 
260
- #: index.php:890
261
  msgid "What to scan:"
262
  msgstr ""
263
 
264
- #: index.php:892
265
  msgid "Scan Depth:"
266
  msgstr ""
267
 
268
- #: index.php:893
269
  msgid "how far to drill down"
270
  msgstr ""
271
 
272
- #: index.php:893
273
  msgid "-1 is infinite depth"
274
  msgstr ""
275
 
276
- #: index.php:896
277
  msgid "Custom RegExp:"
278
  msgstr ""
279
 
280
- #: index.php:896
281
  msgid "For very advanced users only. Do not use this without talking to Eli first. If used incorrectly you could easily break your site."
282
  msgstr ""
283
 
284
- #: index.php:896
285
  msgid "Custom Code to be Checked:"
286
  msgstr ""
287
 
288
- #: index.php:896
289
  msgid "For very advanced users only. If you enter anything in this box then no other files will be scanned on your site."
290
  msgstr ""
291
 
292
- #: index.php:898
293
  msgid "Skip files with the following extentions:"
294
  msgstr ""
295
 
296
- #: index.php:899
297
  msgid "a comma separated list of file extentions to skip"
298
  msgstr ""
299
 
300
- #: index.php:900
301
  msgid "Skip directories with the following names:"
302
  msgstr ""
303
 
304
- #: index.php:901
305
  msgid "a folder name or comma separated list of folder names to skip"
306
  msgstr ""
307
 
308
- #: index.php:902
309
  msgid "Automatically Update Definitions:"
310
  msgstr ""
311
 
312
- #: index.php:902
313
  msgid "This new BETA feature is only available to registered users who have donated at a certain level."
314
  msgstr ""
315
 
316
- #: index.php:902
317
  msgid "Save Settings"
318
  msgstr ""
319
 
320
- #: index.php:902
321
  msgid "Run Complete Scan"
322
  msgstr ""
323
 
324
- #: index.php:909
325
  #, php-format
326
  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)."
327
  msgstr ""
328
 
329
- #: index.php:911
330
  msgid "Scanned Files"
331
  msgstr ""
332
 
333
- #: index.php:911
334
  msgid "Selected Folders"
335
  msgstr ""
336
 
337
- #: index.php:911
338
  msgid "Scanned Folders"
339
  msgstr ""
340
 
341
- #: index.php:911
342
  msgid "Skipped Folders"
343
  msgstr ""
344
 
345
- #: index.php:911
346
  msgid "Skipped Files"
347
  msgstr ""
348
 
349
- #: index.php:911
350
  msgid "Read/Write Errors"
351
  msgstr ""
352
 
353
- #: index.php:911
354
  msgid "Quarantined Files"
355
  msgstr ""
356
 
357
- #: index.php:923
358
  #: images/index.php:32
359
  msgid "Potential Threats"
360
  msgstr ""
361
 
362
- #: index.php:923
363
  msgid "WP-Login Updates"
364
  msgstr ""
365
 
366
- #: index.php:955
367
  msgid "Scan Complete!"
368
  msgstr ""
369
 
370
- #: index.php:1000
371
  msgid "You are not currently scanning for this type of threat!"
372
  msgstr ""
373
 
374
- #: index.php:1024
375
  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."
376
  msgstr ""
377
 
378
- #: index.php:1043
379
  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)."
380
  msgstr ""
381
 
382
- #: index.php:1043
383
  #, php-format
384
  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."
385
  msgstr ""
386
 
387
- #: index.php:1043
388
- #: index.php:1223
389
  msgid "read my blog"
390
  msgstr ""
391
 
392
- #: index.php:1046
393
  msgid "Scan Details:"
394
  msgstr ""
395
 
396
- #: index.php:1047
397
  #, php-format
398
  msgid "Not flushing OB Handlers: %s"
399
  msgstr ""
400
 
401
- #: index.php:1066
402
  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."
403
  msgstr ""
404
 
405
- #: index.php:1084
406
  msgid "Completed!"
407
  msgstr ""
408
 
409
- #: index.php:1086
410
  msgid "Starting Scan ..."
411
  msgstr ""
412
 
413
- #: index.php:1137
414
  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."
415
  msgstr ""
416
 
417
- #: index.php:1142
418
  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."
419
  msgstr ""
420
 
421
- #: index.php:1147
422
  msgid "Your WordPress site has the current version of my brute-force Login protection installed."
423
  msgstr ""
424
 
425
- #: index.php:1153
426
  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."
427
  msgstr ""
428
 
429
- #: index.php:1159
430
  msgid "Checking .htaccess file ..."
431
  msgstr ""
432
 
433
- #: index.php:1159
434
  #: images/index.php:71
435
  msgid "You must register and donate to use this feature!"
436
  msgstr ""
437
 
438
- #: index.php:1159
439
  #: images/index.php:71
440
  msgid "This feature is available to those who have donated!"
441
  msgstr ""
442
 
443
- #: index.php:1171
444
  #, php-format
445
  msgid "Failed to remove XMLRPC Protection (.htaccess %s)"
446
  msgstr ""
447
 
448
- #: index.php:1178
449
  #, php-format
450
  msgid "Failed to install XMLRPC Protection (.htaccess %s)"
451
  msgstr ""
452
 
453
- #: index.php:1182
454
  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."
455
  msgstr ""
456
 
457
- #: index.php:1196
458
  msgid "Removed Brute-Force Protection"
459
  msgstr ""
460
 
461
- #: index.php:1201
462
  msgid "Upgraded Brute-Force Protection"
463
  msgstr ""
464
 
465
- #: index.php:1207
466
  msgid "Installed Brute-Force Protection"
467
  msgstr ""
468
 
469
- #: index.php:1210
470
  #, php-format
471
  msgid "Failed to install Brute-Force Protection (wp-config.php %s)"
472
  msgstr ""
473
 
474
- #: index.php:1212
475
  msgid "wp-config.php Not Readable!"
476
  msgstr ""
477
 
478
- #: index.php:1214
479
  msgid "wp-config.php Not Found!"
480
  msgstr ""
481
 
482
- #: index.php:1217
483
  msgid "Removed Old Brute-Force Login Patch"
484
  msgstr ""
485
 
486
- #: index.php:1221
487
  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."
488
  msgstr ""
489
 
490
- #: index.php:1223
491
  msgid "Checking for session compatibility ..."
492
  msgstr ""
493
 
494
- #: index.php:1223
495
  msgid " For more information on Brute-Force attack prevention and the WordPress wp-login-php file "
496
  msgstr ""
497
 
498
- #: index.php:1228
499
  #, php-format
500
  msgid "You username has been change to %s. Don't forget to use your new username when you login again."
501
  msgstr ""
502
 
503
- #: index.php:1230
504
  #, php-format
505
  msgid "SQL Error changing username: %s. Please try again later."
506
  msgstr ""
507
 
508
- #: index.php:1234
509
  #, php-format
510
  msgid "Your new username must be at least 3 characters and can only contain &quot;%s&quot;. Please try again."
511
  msgstr ""
512
 
513
- #: index.php:1235
514
  msgid "Change your username:"
515
  msgstr ""
516
 
517
- #: index.php:1235
518
  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."
519
  msgstr ""
520
 
521
- #: index.php:1238
522
  msgid "Firewall Options"
523
  msgstr ""
524
 
525
- #: index.php:1324
526
  msgid "Default position"
527
  msgstr ""
528
 
529
- #: index.php:1346
530
  msgid "New position"
531
  msgstr ""
532
 
533
- #: index.php:1350
534
  msgid "saved."
535
  msgstr ""
536
 
537
- #: index.php:1364
538
  msgid "Failed to empty the trash."
539
  msgstr ""
540
 
541
- #: index.php:1417
542
- #: index.php:1453
543
- #: index.php:1455
544
  msgid "Done!"
545
  msgstr ""
546
 
547
- #: index.php:1420
548
  msgid "Failed to delete!"
549
  msgstr ""
550
 
551
- #: index.php:1428
552
  msgid "Complete!"
553
  msgstr ""
554
 
555
- #: index.php:1431
556
  msgid "Restore Failed!"
557
  msgstr ""
558
 
559
- #: index.php:1447
560
  msgid "File "
561
  msgstr ""
562
 
563
- #: index.php:1451
564
  #, php-format
565
  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."
566
  msgstr ""
567
 
568
- #: index.php:1451
569
  msgid "Never mind, it worked!"
570
  msgstr ""
571
 
572
- #: index.php:1453
573
  msgid "Nothing Selected to be Changed!"
574
  msgstr ""
575
 
576
- #: index.php:1522
577
  msgid "Are you sure you want to delete this file from the quarantine?"
578
  msgstr ""
579
 
580
- #: index.php:1522
581
  msgid "File Details:"
582
  msgstr ""
583
 
584
- #: index.php:1524
585
  msgid "This file no longer exists in the quarantine."
586
  msgstr ""
587
 
588
- #: index.php:1541
589
  #, php-format
590
  msgid "The file %s does not exist, it must have already been deleted."
591
  msgstr ""
592
 
593
- #: index.php:1583
594
  msgid "Are you sure this file is not infected and you want to ignore it in future scans?"
595
  msgstr ""
596
 
597
- #: index.php:1583
598
  msgid "Potential threats in file:"
599
  msgstr ""
600
 
8
  msgstr ""
9
  "Project-Id-Version: GOTMLS\n"
10
  "Report-Msgid-Bugs-To: eli@gotmls.net\n"
11
+ "POT-Creation-Date: 2015-11-19 16:28-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"
71
  msgid "Upgrade to %s now!"
72
  msgstr ""
73
 
74
+ #: index.php:141
75
  msgid "Searching for updates ..."
76
  msgstr ""
77
 
78
+ #: index.php:196
79
  msgid "If this is taking too long, click here."
80
  msgstr ""
81
 
82
+ #: index.php:274
83
  msgid "No response from server!"
84
  msgstr ""
85
 
86
+ #: index.php:370
87
  msgid "Updates & Registration"
88
  msgstr ""
89
 
90
+ #: index.php:373
91
+ msgid "Get FREE Key!"
92
  msgstr ""
93
 
94
+ #: index.php:378
95
+ msgid "Download new definitions!"
96
  msgstr ""
97
 
98
+ #: index.php:381
99
+ msgid "<p>Get instant access to definition updates.</p>"
100
  msgstr ""
101
 
102
+ #: index.php:382
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:384
107
  msgid "Your Full Name:"
108
  msgstr ""
109
 
110
+ #: index.php:388
111
  msgid "A password will be e-mailed to this address:"
112
  msgstr ""
113
 
114
+ #: index.php:391
115
  msgid "Your WordPress Site URL:"
116
  msgstr ""
117
 
118
+ #: index.php:394
119
  msgid "Plugin Installation Key:"
120
  msgstr ""
121
 
122
+ #: index.php:411
123
  msgid "Please make a donation for the use of this wonderful feature!"
124
  msgstr ""
125
 
126
+ #: index.php:417
127
  msgid "First Name is a required field!"
128
  msgstr ""
129
 
130
+ #: index.php:419
131
  msgid "Last Name is a required field!"
132
  msgstr ""
133
 
134
+ #: index.php:421
135
  msgid "Email Address is a required field!"
136
  msgstr ""
137
 
138
+ #: index.php:429
139
  msgid "Your WordPress Site URL is a required field!"
140
  msgstr ""
141
 
142
+ #: index.php:431
143
  msgid "Plugin Installation Key is a required field!"
144
  msgstr ""
145
 
146
+ #: index.php:436
147
  msgid "Submitting Registration ..."
148
  msgstr ""
149
 
150
+ #: index.php:457
151
  msgid "Resources & Links"
152
  msgstr ""
153
 
154
+ #: index.php:480
155
  msgid "Make a Donation with PayPal"
156
  msgstr ""
157
 
158
+ #: index.php:496
159
  msgid "Last Scan Status"
160
  msgstr ""
161
 
162
+ #: index.php:555
163
  #, php-format
164
  msgid "Cleared %s records from this log."
165
  msgstr ""
166
 
167
+ #: index.php:597
168
  msgid "No Scans have been logged"
169
  msgstr ""
170
 
171
+ #: index.php:604
172
  msgid "Globally White-listed files"
173
  msgstr ""
174
 
175
+ #: index.php:604
176
  msgid "# of patterns"
177
  msgstr ""
178
 
179
+ #: index.php:604
180
  msgid "Date Updated"
181
  msgstr ""
182
 
183
+ #: index.php:614
184
  msgid "WordPress Core files"
185
  msgstr ""
186
 
187
+ #: index.php:614
188
  msgid "# of files"
189
  msgstr ""
190
 
191
+ #: index.php:688
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:695
196
  msgid "Restore selected files"
197
  msgstr ""
198
 
199
+ #: index.php:695
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:695
204
  msgid "Delete selected files"
205
  msgstr ""
206
 
207
+ #: index.php:695
208
  msgid "Are you sure you want to permanently delete the selected files in the Quarantine?"
209
  msgstr ""
210
 
211
+ #: index.php:695
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:696
216
  #, php-format
217
  msgid "Check all %d"
218
  msgstr ""
219
 
220
+ #: index.php:696
221
  msgid " Items in Quarantine"
222
  msgstr ""
223
 
224
+ #: index.php:696
225
+ msgid "Quarantined"
226
+ msgstr ""
227
+
228
+ #: index.php:696
229
+ msgid "Date Infected"
230
+ msgstr ""
231
+
232
+ #: index.php:701
233
  msgid "View Quarantined File"
234
  msgstr ""
235
 
236
+ #: index.php:708
237
  msgid "No Items in Quarantine"
238
  msgstr ""
239
 
240
+ #: index.php:713
241
+ #, php-format
242
+ msgid "Clear %s Deleted Files from the Trash"
243
+ msgstr ""
244
+
245
+ #: index.php:719
246
  msgid "White-lists"
247
  msgstr ""
248
 
249
+ #: index.php:722
250
  msgid "Quarantine"
251
  msgstr ""
252
 
253
+ #: index.php:726
254
  msgid "Scan Logs"
255
  msgstr ""
256
 
257
+ #: index.php:856
258
  msgid "Only Scan These Folders:"
259
  msgstr ""
260
 
261
+ #: index.php:860
262
  msgid "What to look for:"
263
  msgstr ""
264
 
265
+ #: index.php:875
266
  msgid "Download Definition Updates to Use this feature"
267
  msgstr ""
268
 
269
+ #: index.php:875
270
  msgid "Download the new definitions (Right sidebar) to activate this feature."
271
  msgstr ""
272
 
273
+ #: index.php:879
274
  msgid "What to scan:"
275
  msgstr ""
276
 
277
+ #: index.php:881
278
  msgid "Scan Depth:"
279
  msgstr ""
280
 
281
+ #: index.php:882
282
  msgid "how far to drill down"
283
  msgstr ""
284
 
285
+ #: index.php:882
286
  msgid "-1 is infinite depth"
287
  msgstr ""
288
 
289
+ #: index.php:885
290
  msgid "Custom RegExp:"
291
  msgstr ""
292
 
293
+ #: index.php:885
294
  msgid "For very advanced users only. Do not use this without talking to Eli first. If used incorrectly you could easily break your site."
295
  msgstr ""
296
 
297
+ #: index.php:885
298
  msgid "Custom Code to be Checked:"
299
  msgstr ""
300
 
301
+ #: index.php:885
302
  msgid "For very advanced users only. If you enter anything in this box then no other files will be scanned on your site."
303
  msgstr ""
304
 
305
+ #: index.php:887
306
  msgid "Skip files with the following extentions:"
307
  msgstr ""
308
 
309
+ #: index.php:888
310
  msgid "a comma separated list of file extentions to skip"
311
  msgstr ""
312
 
313
+ #: index.php:889
314
  msgid "Skip directories with the following names:"
315
  msgstr ""
316
 
317
+ #: index.php:890
318
  msgid "a folder name or comma separated list of folder names to skip"
319
  msgstr ""
320
 
321
+ #: index.php:891
322
  msgid "Automatically Update Definitions:"
323
  msgstr ""
324
 
325
+ #: index.php:891
326
  msgid "This new BETA feature is only available to registered users who have donated at a certain level."
327
  msgstr ""
328
 
329
+ #: index.php:891
330
  msgid "Save Settings"
331
  msgstr ""
332
 
333
+ #: index.php:891
334
  msgid "Run Complete Scan"
335
  msgstr ""
336
 
337
+ #: index.php:898
338
  #, php-format
339
  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)."
340
  msgstr ""
341
 
342
+ #: index.php:900
343
  msgid "Scanned Files"
344
  msgstr ""
345
 
346
+ #: index.php:900
347
  msgid "Selected Folders"
348
  msgstr ""
349
 
350
+ #: index.php:900
351
  msgid "Scanned Folders"
352
  msgstr ""
353
 
354
+ #: index.php:900
355
  msgid "Skipped Folders"
356
  msgstr ""
357
 
358
+ #: index.php:900
359
  msgid "Skipped Files"
360
  msgstr ""
361
 
362
+ #: index.php:900
363
  msgid "Read/Write Errors"
364
  msgstr ""
365
 
366
+ #: index.php:900
367
  msgid "Quarantined Files"
368
  msgstr ""
369
 
370
+ #: index.php:912
371
  #: images/index.php:32
372
  msgid "Potential Threats"
373
  msgstr ""
374
 
375
+ #: index.php:912
376
  msgid "WP-Login Updates"
377
  msgstr ""
378
 
379
+ #: index.php:944
380
  msgid "Scan Complete!"
381
  msgstr ""
382
 
383
+ #: index.php:989
384
  msgid "You are not currently scanning for this type of threat!"
385
  msgstr ""
386
 
387
+ #: index.php:1013
388
  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."
389
  msgstr ""
390
 
391
+ #: index.php:1032
392
  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)."
393
  msgstr ""
394
 
395
+ #: index.php:1032
396
  #, php-format
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:1032
401
+ #: index.php:1212
402
  msgid "read my blog"
403
  msgstr ""
404
 
405
+ #: index.php:1035
406
  msgid "Scan Details:"
407
  msgstr ""
408
 
409
+ #: index.php:1036
410
  #, php-format
411
  msgid "Not flushing OB Handlers: %s"
412
  msgstr ""
413
 
414
+ #: index.php:1055
415
  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."
416
  msgstr ""
417
 
418
+ #: index.php:1073
419
  msgid "Completed!"
420
  msgstr ""
421
 
422
+ #: index.php:1075
423
  msgid "Starting Scan ..."
424
  msgstr ""
425
 
426
+ #: index.php:1126
427
  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."
428
  msgstr ""
429
 
430
+ #: index.php:1131
431
  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."
432
  msgstr ""
433
 
434
+ #: index.php:1136
435
  msgid "Your WordPress site has the current version of my brute-force Login protection installed."
436
  msgstr ""
437
 
438
+ #: index.php:1142
439
  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."
440
  msgstr ""
441
 
442
+ #: index.php:1148
443
  msgid "Checking .htaccess file ..."
444
  msgstr ""
445
 
446
+ #: index.php:1148
447
  #: images/index.php:71
448
  msgid "You must register and donate to use this feature!"
449
  msgstr ""
450
 
451
+ #: index.php:1148
452
  #: images/index.php:71
453
  msgid "This feature is available to those who have donated!"
454
  msgstr ""
455
 
456
+ #: index.php:1160
457
  #, php-format
458
  msgid "Failed to remove XMLRPC Protection (.htaccess %s)"
459
  msgstr ""
460
 
461
+ #: index.php:1167
462
  #, php-format
463
  msgid "Failed to install XMLRPC Protection (.htaccess %s)"
464
  msgstr ""
465
 
466
+ #: index.php:1171
467
  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."
468
  msgstr ""
469
 
470
+ #: index.php:1185
471
  msgid "Removed Brute-Force Protection"
472
  msgstr ""
473
 
474
+ #: index.php:1190
475
  msgid "Upgraded Brute-Force Protection"
476
  msgstr ""
477
 
478
+ #: index.php:1196
479
  msgid "Installed Brute-Force Protection"
480
  msgstr ""
481
 
482
+ #: index.php:1199
483
  #, php-format
484
  msgid "Failed to install Brute-Force Protection (wp-config.php %s)"
485
  msgstr ""
486
 
487
+ #: index.php:1201
488
  msgid "wp-config.php Not Readable!"
489
  msgstr ""
490
 
491
+ #: index.php:1203
492
  msgid "wp-config.php Not Found!"
493
  msgstr ""
494
 
495
+ #: index.php:1206
496
  msgid "Removed Old Brute-Force Login Patch"
497
  msgstr ""
498
 
499
+ #: index.php:1210
500
  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."
501
  msgstr ""
502
 
503
+ #: index.php:1212
504
  msgid "Checking for session compatibility ..."
505
  msgstr ""
506
 
507
+ #: index.php:1212
508
  msgid " For more information on Brute-Force attack prevention and the WordPress wp-login-php file "
509
  msgstr ""
510
 
511
+ #: index.php:1217
512
  #, php-format
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:1219
517
  #, php-format
518
  msgid "SQL Error changing username: %s. Please try again later."
519
  msgstr ""
520
 
521
+ #: index.php:1223
522
  #, php-format
523
  msgid "Your new username must be at least 3 characters and can only contain &quot;%s&quot;. Please try again."
524
  msgstr ""
525
 
526
+ #: index.php:1224
527
  msgid "Change your username:"
528
  msgstr ""
529
 
530
+ #: index.php:1224
531
  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."
532
  msgstr ""
533
 
534
+ #: index.php:1227
535
  msgid "Firewall Options"
536
  msgstr ""
537
 
538
+ #: index.php:1315
539
  msgid "Default position"
540
  msgstr ""
541
 
542
+ #: index.php:1337
543
  msgid "New position"
544
  msgstr ""
545
 
546
+ #: index.php:1341
547
  msgid "saved."
548
  msgstr ""
549
 
550
+ #: index.php:1355
551
  msgid "Failed to empty the trash."
552
  msgstr ""
553
 
554
+ #: index.php:1408
555
+ #: index.php:1444
556
+ #: index.php:1446
557
  msgid "Done!"
558
  msgstr ""
559
 
560
+ #: index.php:1411
561
  msgid "Failed to delete!"
562
  msgstr ""
563
 
564
+ #: index.php:1419
565
  msgid "Complete!"
566
  msgstr ""
567
 
568
+ #: index.php:1422
569
  msgid "Restore Failed!"
570
  msgstr ""
571
 
572
+ #: index.php:1438
573
  msgid "File "
574
  msgstr ""
575
 
576
+ #: index.php:1442
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:1442
582
  msgid "Never mind, it worked!"
583
  msgstr ""
584
 
585
+ #: index.php:1444
586
  msgid "Nothing Selected to be Changed!"
587
  msgstr ""
588
 
589
+ #: index.php:1513
590
  msgid "Are you sure you want to delete this file from the quarantine?"
591
  msgstr ""
592
 
593
+ #: index.php:1513
594
  msgid "File Details:"
595
  msgstr ""
596
 
597
+ #: index.php:1515
598
  msgid "This file no longer exists in the quarantine."
599
  msgstr ""
600
 
601
+ #: index.php:1532
602
  #, php-format
603
  msgid "The file %s does not exist, it must have already been deleted."
604
  msgstr ""
605
 
606
+ #: index.php:1574
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:1574
611
  msgid "Potential threats in file:"
612
  msgstr ""
613
 
readme.txt CHANGED
@@ -4,9 +4,9 @@ Author: Eli Scheetz
4
  Author URI: http://wordpress.ieonly.com/category/my-plugins/anti-malware/
5
  Contributors: scheeeli, gotmls
6
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
7
- Tags: anti-malware, security, scanner, automatic, repair, remove, malware, virus, threat, hacked, malicious, infection, timthumb, exploit, block, brute-force, wp-login, patch, antimalware, revslider, Revolution Slider
8
- Version: 4.15.45
9
- Stable tag: 4.15.45
10
  Requires at least: 3.3
11
  Tested up to: 4.3.1
12
 
@@ -29,7 +29,7 @@ This Anti-Malware scanner searches for Malware, Viruses, and other security thre
29
  * Check the integrity of your WordPress Core files.
30
  * Automatically Download Definition Updates When running a Complete Scan.
31
 
32
- Updated November 13th
33
 
34
  Register this plugin at [GOTMLS.NET](http://gotmls.net/) and get access to new definitions of "Known Threats" and added features like Automatic Removal, plus patches for specific security vulnerabilities like old versions of timthumb. Updated definition files can be downloaded automatically within the admin once your Key is registered. Otherwise, this plugin just scans for "Potential Threats" and leaves it up to you to identify and remove the malicious ones.
35
 
@@ -95,6 +95,10 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
95
 
96
  == Changelog ==
97
 
 
 
 
 
98
  = 4.15.45 =
99
  * Fixed the Nonce Token error caused by W3 Total Cache breaking the set_transient function in WordPress.
100
  * Added the Brazilian Portuguese language files, thanks to Marcelo Guernieri for the translation.
@@ -375,6 +379,9 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
375
 
376
  == Upgrade Notice ==
377
 
 
 
 
378
  = 4.15.45 =
379
  Fixed the Nonce Token error caused by W3 Total Cache, and added the Brazilian Portuguese translation by Marcelo Guernieri.
380
 
4
  Author URI: http://wordpress.ieonly.com/category/my-plugins/anti-malware/
5
  Contributors: scheeeli, gotmls
6
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
7
+ Tags: anti-malware, firewall, security, scanner, automatic, repair, remove, malware, virus, threat, hacked, malicious, infection, timthumb, exploit, block, brute-force, wp-login, patch, antimalware, revslider, Revolution Slider
8
+ Version: 4.15.46
9
+ Stable tag: 4.15.46
10
  Requires at least: 3.3
11
  Tested up to: 4.3.1
12
 
29
  * Check the integrity of your WordPress Core files.
30
  * Automatically Download Definition Updates When running a Complete Scan.
31
 
32
+ Updated November 19th
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
 
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.
101
+
102
  = 4.15.45 =
103
  * Fixed the Nonce Token error caused by W3 Total Cache breaking the set_transient function in WordPress.
104
  * Added the Brazilian Portuguese language files, thanks to Marcelo Guernieri for the translation.
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
+
385
  = 4.15.45 =
386
  Fixed the Nonce Token error caused by W3 Total Cache, and added the Brazilian Portuguese translation by Marcelo Guernieri.
387