Version Description
- Moved the quarantine files into the database and deleted the old directory in uploads.
- Fixed some minor formatting issues in the HTML output on the settings page.
- Added a warning message if base64_decode has been disabled.
Download this release
Release Info
Developer | scheeeli |
Plugin | Anti-Malware Security and Brute-Force Firewall |
Version | 4.15.26 |
Comparing to | |
See all releases |
Code changes from version 4.15.25 to 4.15.26
- images/index.php +10 -50
- index.php +46 -17
- languages/gotmls.pot +1 -1
- readme.txt +4 -4
images/index.php
CHANGED
@@ -10,11 +10,14 @@ function GOTMLS_define($DEF, $val) {
|
|
10 |
define($DEF, $val);
|
11 |
}}
|
12 |
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
GOTMLS_define("GOTMLS_require_version", "3.3");
|
15 |
-
GOTMLS_define("GOTMLS_plugin_dir", "gotmls");
|
16 |
-
GOTMLS_define("GOTMLS_local_images_path", dirname(__FILE__)."/");
|
17 |
-
GOTMLS_define("GOTMLS_plugin_path", dirname(GOTMLS_local_images_path).'/');
|
18 |
|
19 |
if (!function_exists("__")) {
|
20 |
function __($text, $domain) {
|
@@ -88,7 +91,6 @@ GOTMLS_define("GOTMLS_require_version_LANGUAGE", sprintf(__("This Plugin require
|
|
88 |
GOTMLS_define("GOTMLS_Scan_Settings_LANGUAGE", __("Scan Settings",'gotmls'));
|
89 |
GOTMLS_define("GOTMLS_Loading_LANGUAGE", __("Loading, Please Wait ...",'gotmls'));
|
90 |
GOTMLS_define("GOTMLS_Automatically_Fix_LANGUAGE", __("Automatically Fix SELECTED Files Now",'gotmls'));
|
91 |
-
GOTMLS_define("GOTMLS_update_images_path", "/wp-content/plugins/update/images/");
|
92 |
|
93 |
if (isset($_SERVER['HTTP_HOST']))
|
94 |
$SERVER_HTTP = 'HOST://'.$_SERVER['HTTP_HOST'];
|
@@ -117,12 +119,14 @@ if (function_exists("get_option")) {
|
|
117 |
GOTMLS_define("GOTMLS_installation_key", md5(GOTMLS_siteurl));
|
118 |
if (function_exists("plugins_url"))
|
119 |
GOTMLS_define("GOTMLS_images_path", plugins_url('/', __FILE__));
|
|
|
|
|
120 |
elseif (isset($_SERVER["DOCUMENT_ROOT"]) && ($_SERVER["DOCUMENT_ROOT"]) && strlen($_SERVER["DOCUMENT_ROOT"]) < __FILE__ && substr(__FILE__, 0, strlen($_SERVER["DOCUMENT_ROOT"])) == $_SERVER["DOCUMENT_ROOT"])
|
121 |
GOTMLS_define("GOTMLS_images_path", substr(dirname(__FILE__), strlen($_SERVER["DOCUMENT_ROOT"])));
|
122 |
elseif (isset($_SERVER["SCRIPT_FILENAME"]) && isset($_SERVER["DOCUMENT_ROOT"]) && ($_SERVER["DOCUMENT_ROOT"]) && strlen($_SERVER["DOCUMENT_ROOT"]) < strlen($_SERVER["SCRIPT_FILENAME"]) && substr($_SERVER["SCRIPT_FILENAME"], 0, strlen($_SERVER["DOCUMENT_ROOT"])) == $_SERVER["DOCUMENT_ROOT"])
|
123 |
GOTMLS_define("GOTMLS_images_path", substr(dirname($_SERVER["SCRIPT_FILENAME"]), strlen($_SERVER["DOCUMENT_ROOT"])));
|
124 |
else
|
125 |
-
GOTMLS_define("GOTMLS_images_path",
|
126 |
|
127 |
$GOTMLS_chmod_file = (0644);
|
128 |
$GOTMLS_chmod_dir = (0755);
|
@@ -573,50 +577,6 @@ function GOTMLS_get_current_user_id() {
|
|
573 |
return 1;
|
574 |
}
|
575 |
|
576 |
-
function GOTMLS_quarantine($path = "") {
|
577 |
-
global $wpdb;//, $GOTMLS_new_contents, $GOTMLS_file_contents, $GOTMLS_threats_found;
|
578 |
-
if (!isset($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"])) {
|
579 |
-
if (($upload = wp_upload_dir()) && isset($upload['basedir']))
|
580 |
-
$GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"] = str_replace("/", GOTMLS_slash(), GOTMLS_trailingslashit($upload['basedir'])).'quarantine';
|
581 |
-
else
|
582 |
-
$GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"] = false;
|
583 |
-
}
|
584 |
-
if ($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"] && is_dir($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"])) {
|
585 |
-
$entries = GOTMLS_getfiles($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]);
|
586 |
-
if (is_array($entries) && count($entries)) {
|
587 |
-
foreach ($entries as $entry) {
|
588 |
-
if (is_file($file = GOTMLS_trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).$entry)) {
|
589 |
-
if (GOTMLS_get_ext($entry) == "gotmls" && ($GOTMLS_file_contents = file_get_contents($file))) {
|
590 |
-
$insert = array("post_author"=>GOTMLS_get_current_user_id(), "ping_status"=>"imported", "post_status"=>"private", "post_type"=>"GOTMLS_quarantine", "post_content"=>GOTMLS_encode($GOTMLS_file_contents), "post_mime_type"=>md5($GOTMLS_file_contents));//! comment_status post_password post_name to_ping post_parent guid menu_order";
|
591 |
-
if (!($insert["comment_count"] = @filesize($file)))
|
592 |
-
$insert["comment_count"] = strlen($GOTMLS_file_contents);
|
593 |
-
$file_date = explode(".", $entry);
|
594 |
-
$insert["post_date"] = date("Y-m-d H:i:s", filemtime($file));
|
595 |
-
$insert["post_date_gmt"] = $insert["post_date"];
|
596 |
-
$insert["post_modified"] = $insert["post_date"];
|
597 |
-
$match = '/^(20)?([0-5][0-9])[\-: \/]*(0*[1-9]|1[0-2])[\-: \/]*(0*[1-9]|[12][0-9]|3[01])[\-: \/]*([0-5][0-9])[\-: \/]*([0-5][0-9])$/';
|
598 |
-
if (count($file_date) > 2 && strlen($file_date[0]) == 5 && preg_match($match, GOTMLS_sexagesimal($file_date[0])))
|
599 |
-
$insert["post_modified"] = GOTMLS_sexagesimal($file_date[0]).":00";
|
600 |
-
elseif (count($file_date) > 3 && strlen($file_date[1]) == 5 && preg_match($match, GOTMLS_sexagesimal($file_date[1])))
|
601 |
-
$insert["post_modified"] = GOTMLS_sexagesimal($file_date[1]).":00";
|
602 |
-
$insert["post_modified_gmt"] = $insert["post_modified"];
|
603 |
-
$insert["post_title"] = GOTMLS_decode($file_date[count($file_date)-2]);
|
604 |
-
if (is_file($insert["post_title"]) && ($GOTMLS_new_contents = file_get_contents($insert["post_title"])))
|
605 |
-
$insert["post_content_filtered"] = GOTMLS_encode($GOTMLS_new_contents);
|
606 |
-
//! pinged post_excerpt
|
607 |
-
if ($wpdb->insert($wpdb->posts, $insert))
|
608 |
-
unlink(trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).$entry);
|
609 |
-
} elseif (basename($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]) == "quarantine")
|
610 |
-
unlink(trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).$entry);
|
611 |
-
}
|
612 |
-
}
|
613 |
-
} elseif (basename($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]) == "quarantine")
|
614 |
-
rmdir($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]);
|
615 |
-
}
|
616 |
-
if ($path)
|
617 |
-
return GOTMLS_trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).(is_file($file)?GOTMLS_sexagesimal(date("y-m-d-H-i", filectime($file))).'.'.GOTMLS_sexagesimal(date("y-m-d-H-i", filemtime($file))):GOTMLS_sexagesimal(date("y-m-d-H-i", time()))).'.'.GOTMLS_encode($file?$file:__FILE__).'.GOTMLS';
|
618 |
-
}
|
619 |
-
|
620 |
function GOTMLS_update_status($status, $percent = -1) {
|
621 |
if (!(isset($GLOBALS["GOTMLS"]["log"]["scan"]["start"]) && is_numeric($GLOBALS["GOTMLS"]["log"]["scan"]["start"])))
|
622 |
$GLOBALS["GOTMLS"]["log"]["scan"]["start"] = time();
|
10 |
define($DEF, $val);
|
11 |
}}
|
12 |
|
13 |
+
$file = basename(__FILE__);
|
14 |
+
GOTMLS_define("GOTMLS_local_images_path", substr(__FILE__, 0, strlen(__FILE__) - strlen($file)));
|
15 |
+
GOTMLS_define("GOTMLS_plugin_path", substr(dirname(__FILE__), 0, strlen(dirname(__FILE__)) - strlen(basename(dirname(__FILE__)))));
|
16 |
+
if (is_file(GOTMLS_plugin_path.$file) && ($contents = @file_get_contents(GOTMLS_plugin_path.$file)) && preg_match('/\nversion:\s*([0-9\.]+)/i', $contents, $match))
|
17 |
+
GOTMLS_define("GOTMLS_Version", $match[1]);
|
18 |
+
else
|
19 |
+
GOTMLS_define("GOTMLS_Version", "Unknown");
|
20 |
GOTMLS_define("GOTMLS_require_version", "3.3");
|
|
|
|
|
|
|
21 |
|
22 |
if (!function_exists("__")) {
|
23 |
function __($text, $domain) {
|
91 |
GOTMLS_define("GOTMLS_Scan_Settings_LANGUAGE", __("Scan Settings",'gotmls'));
|
92 |
GOTMLS_define("GOTMLS_Loading_LANGUAGE", __("Loading, Please Wait ...",'gotmls'));
|
93 |
GOTMLS_define("GOTMLS_Automatically_Fix_LANGUAGE", __("Automatically Fix SELECTED Files Now",'gotmls'));
|
|
|
94 |
|
95 |
if (isset($_SERVER['HTTP_HOST']))
|
96 |
$SERVER_HTTP = 'HOST://'.$_SERVER['HTTP_HOST'];
|
119 |
GOTMLS_define("GOTMLS_installation_key", md5(GOTMLS_siteurl));
|
120 |
if (function_exists("plugins_url"))
|
121 |
GOTMLS_define("GOTMLS_images_path", plugins_url('/', __FILE__));
|
122 |
+
elseif (function_exists("plugin_dir_url"))
|
123 |
+
GOTMLS_define("GOTMLS_images_path", plugin_dir_url(__FILE__));
|
124 |
elseif (isset($_SERVER["DOCUMENT_ROOT"]) && ($_SERVER["DOCUMENT_ROOT"]) && strlen($_SERVER["DOCUMENT_ROOT"]) < __FILE__ && substr(__FILE__, 0, strlen($_SERVER["DOCUMENT_ROOT"])) == $_SERVER["DOCUMENT_ROOT"])
|
125 |
GOTMLS_define("GOTMLS_images_path", substr(dirname(__FILE__), strlen($_SERVER["DOCUMENT_ROOT"])));
|
126 |
elseif (isset($_SERVER["SCRIPT_FILENAME"]) && isset($_SERVER["DOCUMENT_ROOT"]) && ($_SERVER["DOCUMENT_ROOT"]) && strlen($_SERVER["DOCUMENT_ROOT"]) < strlen($_SERVER["SCRIPT_FILENAME"]) && substr($_SERVER["SCRIPT_FILENAME"], 0, strlen($_SERVER["DOCUMENT_ROOT"])) == $_SERVER["DOCUMENT_ROOT"])
|
127 |
GOTMLS_define("GOTMLS_images_path", substr(dirname($_SERVER["SCRIPT_FILENAME"]), strlen($_SERVER["DOCUMENT_ROOT"])));
|
128 |
else
|
129 |
+
GOTMLS_define("GOTMLS_images_path", "/wp-content/plugins/update/images/");
|
130 |
|
131 |
$GOTMLS_chmod_file = (0644);
|
132 |
$GOTMLS_chmod_dir = (0755);
|
577 |
return 1;
|
578 |
}
|
579 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
580 |
function GOTMLS_update_status($status, $percent = -1) {
|
581 |
if (!(isset($GLOBALS["GOTMLS"]["log"]["scan"]["start"]) && is_numeric($GLOBALS["GOTMLS"]["log"]["scan"]["start"])))
|
582 |
$GLOBALS["GOTMLS"]["log"]["scan"]["start"] = time();
|
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");
|
@@ -119,7 +119,7 @@ function GOTMLS_display_header($optional_box = "") {
|
|
119 |
echo '<div id="check_site" style="z-index: 1234567;"><img src="'.GOTMLS_images_path.'checked.gif" height=16 width=16 alt="✔"> '.__("Tested your site. It appears we didn't break anything",'gotmls').' ;-)</div><script type="text/javascript">window.parent.document.getElementById("check_site_warning").style.backgroundColor=\'#0C0\';</script><li>Please <a target="_blank" href="https://wordpress.org/plugins/gotmls/stats/?compatibility%5Bversion%5D='.$wp_version.'&compatibility%5Btopic_version%5D='.GOTMLS_Version.'&compatibility%5Bcompatible%5D=1#compatibility-works">Vote "Works"</a> or <a target="_blank" href="https://wordpress.org/support/view/plugin-reviews/gotmls#postform">write a "Five-Star" Reviews</a> on WordPress.org if you like this plugin.</li><style>#footer, #GOTMLS-metabox-container, #GOTMLS-right-sidebar, #admin-page-container, #wpadminbar, #adminmenuback, #adminmenuwrap, #adminmenu, .error, .updated, .update-nag {display: none !important;} #wpbody-content {padding-bottom: 0;} #wpbody, html.wp-toolbar {padding-top: 0 !important;} #wpcontent, #footer {margin-left: 5px !important;}';
|
120 |
else
|
121 |
echo '<style>#GOTMLS-right-sidebar {float: right; margin-right: 0px;}';
|
122 |
-
$Update_Definitions = GOTMLS_plugin_home.'definitions.js'.$GLOBALS["GOTMLS"]["tmp"]["Definition"]["Updates"].'&js='.GOTMLS_Version.'&p=
|
123 |
$Update_Link = '<div style="text-align: center;"><a href="';
|
124 |
$new_version = "";
|
125 |
$file = basename(GOTMLS_plugin_path).'/index.php';
|
@@ -478,9 +478,9 @@ setDiv("div_file");
|
|
478 |
<div>
|
479 |
<ul class="GOTMLS-sidebar-links">
|
480 |
<li style="float: right;"><b>on <a target="_blank" href="https://profiles.wordpress.org/scheeeli#content-plugins">WordPress.org</a></b><ul class="GOTMLS-sidebar-links">
|
481 |
-
<li><a target="_blank" href="https://wordpress.org/plugins/
|
482 |
-
<li><a target="_blank" href="https://wordpress.org/support/plugin/
|
483 |
-
<li><a target="_blank" href="https://wordpress.org/support/view/plugin-reviews/
|
484 |
</ul></li>
|
485 |
<li><img src="//gravatar.com/avatar/5feb789dd3a292d563fea3b885f786d6?s=16" border="0" alt="Plugin site:"><b><a target="_blank" href="'.GOTMLS_plugin_home.'">GOTMLS.NET</a></b></li>
|
486 |
<li><img src="//gravatar.com/avatar/8151cac22b3fc543d099241fd573d176?s=16" border="0" alt="Developer site:"><b><a target="_blank" href="'.GOTMLS_blog_home.'/category/my-plugins/anti-malware/">Eli\'s Blog</a></b></li>
|
@@ -619,6 +619,45 @@ function GOTMLS_get_whitelists() {
|
|
619 |
|
620 |
function GOTMLS_get_quarantine($only = false) {
|
621 |
global $wpdb, $current_user, $post;//, $GOTMLS_new_contents, $GOTMLS_file_contents, $GOTMLS_threats_found;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
$Q_Page = '
|
623 |
<form method="POST" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"><input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1">';
|
624 |
$args = array('posts_per_page' => -1, 'orderby' => 'date', 'post_type' => 'GOTMLS_quarantine', "post_status" => "private");
|
@@ -633,7 +672,6 @@ function GOTMLS_get_quarantine($only = false) {
|
|
633 |
$root_path = implode(GOTMLS_slash(), array_slice(GOTMLS_explode_dir(__file__), 0, (2 + intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"])) * -1));
|
634 |
while ($my_query->have_posts()) {
|
635 |
$my_query->the_post();
|
636 |
-
$clean_file = GOTMLS_encode($post->post_title);
|
637 |
$Q_Page .= '
|
638 |
<li id="GOTMLS_quarantine_'.$post->ID.'" class="GOTMLS_quarantine_item"><span class="GOTMLS_date">'.$post->post_date_gmt.'</span><span class="GOTMLS_date">'.$post->post_modified_gmt.'</span><input type="checkbox" name="GOTMLS_fix[]" value="'.$post->ID.'" id="check_'.$post->ID.'" onchange="document.getElementById(\'quarantine_buttons\').style.display = \'block\';" /><img src="'.GOTMLS_images_path.'blocked.gif" height=16 width=16 alt="Q">'.GOTMLS_error_link(__("View Quarantined File",'gotmls'), $post->ID).str_replace($root_path, "...", $post->post_title)."</a></li>\n";
|
639 |
}
|
@@ -921,11 +959,7 @@ var startTime = 0;
|
|
921 |
if (is_dir($dir)) {
|
922 |
$GOTMLS_dirs_at_depth[0] = 1;
|
923 |
$GOTMLS_dir_at_depth[0] = 0;
|
924 |
-
|
925 |
-
$GOTMLS_dirs_at_depth[0]++;
|
926 |
-
GOTMLS_readdir($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]);
|
927 |
-
}
|
928 |
-
*/ if (isset($_POST['scan_only']) && is_array($_POST['scan_only'])) {
|
929 |
$GOTMLS_dirs_at_depth[0] += (count($_POST['scan_only']) - 1);
|
930 |
foreach ($_POST['scan_only'] as $only_dir)
|
931 |
if (is_dir(GOTMLS_trailingslashit($dir).$only_dir))
|
@@ -1325,11 +1359,6 @@ function GOTMLS_init() {
|
|
1325 |
if (!file_exists($file))
|
1326 |
die(GOTMLS_html_tags(array("html" => array("body" => sprintf(__("The file %s does not exist, it must have already been deleted.",'gotmls'), $file)."<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\n</script>"))));
|
1327 |
else {
|
1328 |
-
$clean_file = $file;
|
1329 |
-
if (is_numeric($file) && $file == GOTMLS_quarantine($file)) {
|
1330 |
-
$clean_file = 'Quarantined: '.GOTMLS_decode(array_pop(explode(".", '.'.substr($file, strlen(dirname($file))+1, -7))));
|
1331 |
-
$_GET["eli"] = "quarantine";
|
1332 |
-
}
|
1333 |
GOTMLS_scanfile($file);
|
1334 |
$fa = "";
|
1335 |
$function = 'GOTMLS_decode';
|
@@ -1375,7 +1404,7 @@ function GOTMLS_init() {
|
|
1375 |
}
|
1376 |
}
|
1377 |
window.parent.showhide("GOTMLS_iFrame", true);
|
1378 |
-
</script><table style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"><tr><td style="width: 100%"><form style="margin: 0;" method="post"
|
1379 |
}
|
1380 |
}
|
1381 |
}
|
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.26
|
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");
|
119 |
echo '<div id="check_site" style="z-index: 1234567;"><img src="'.GOTMLS_images_path.'checked.gif" height=16 width=16 alt="✔"> '.__("Tested your site. It appears we didn't break anything",'gotmls').' ;-)</div><script type="text/javascript">window.parent.document.getElementById("check_site_warning").style.backgroundColor=\'#0C0\';</script><li>Please <a target="_blank" href="https://wordpress.org/plugins/gotmls/stats/?compatibility%5Bversion%5D='.$wp_version.'&compatibility%5Btopic_version%5D='.GOTMLS_Version.'&compatibility%5Bcompatible%5D=1#compatibility-works">Vote "Works"</a> or <a target="_blank" href="https://wordpress.org/support/view/plugin-reviews/gotmls#postform">write a "Five-Star" Reviews</a> on WordPress.org if you like this plugin.</li><style>#footer, #GOTMLS-metabox-container, #GOTMLS-right-sidebar, #admin-page-container, #wpadminbar, #adminmenuback, #adminmenuwrap, #adminmenu, .error, .updated, .update-nag {display: none !important;} #wpbody-content {padding-bottom: 0;} #wpbody, html.wp-toolbar {padding-top: 0 !important;} #wpcontent, #footer {margin-left: 5px !important;}';
|
120 |
else
|
121 |
echo '<style>#GOTMLS-right-sidebar {float: right; margin-right: 0px;}';
|
122 |
+
$Update_Definitions = GOTMLS_plugin_home.'definitions.js'.$GLOBALS["GOTMLS"]["tmp"]["Definition"]["Updates"].'&js='.GOTMLS_Version.'&p=GOTMLS&wp='.$wp_version.'&ts='.date("YmdHis").'&key='.GOTMLS_installation_key.'&d='.ur1encode(GOTMLS_siteurl);
|
123 |
$Update_Link = '<div style="text-align: center;"><a href="';
|
124 |
$new_version = "";
|
125 |
$file = basename(GOTMLS_plugin_path).'/index.php';
|
478 |
<div>
|
479 |
<ul class="GOTMLS-sidebar-links">
|
480 |
<li style="float: right;"><b>on <a target="_blank" href="https://profiles.wordpress.org/scheeeli#content-plugins">WordPress.org</a></b><ul class="GOTMLS-sidebar-links">
|
481 |
+
<li><a target="_blank" href="https://wordpress.org/plugins/gotmls/faq/">Plugin FAQs</a></li>
|
482 |
+
<li><a target="_blank" href="https://wordpress.org/support/plugin/gotmls">Forum Posts</a></li>
|
483 |
+
<li><a target="_blank" href="https://wordpress.org/support/view/plugin-reviews/gotmls">Plugin Reviews</a></li>
|
484 |
</ul></li>
|
485 |
<li><img src="//gravatar.com/avatar/5feb789dd3a292d563fea3b885f786d6?s=16" border="0" alt="Plugin site:"><b><a target="_blank" href="'.GOTMLS_plugin_home.'">GOTMLS.NET</a></b></li>
|
486 |
<li><img src="//gravatar.com/avatar/8151cac22b3fc543d099241fd573d176?s=16" border="0" alt="Developer site:"><b><a target="_blank" href="'.GOTMLS_blog_home.'/category/my-plugins/anti-malware/">Eli\'s Blog</a></b></li>
|
619 |
|
620 |
function GOTMLS_get_quarantine($only = false) {
|
621 |
global $wpdb, $current_user, $post;//, $GOTMLS_new_contents, $GOTMLS_file_contents, $GOTMLS_threats_found;
|
622 |
+
if (!isset($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"])) {
|
623 |
+
if (($upload = wp_upload_dir()) && isset($upload['basedir']))
|
624 |
+
$GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"] = str_replace("/", GOTMLS_slash(), GOTMLS_trailingslashit($upload['basedir'])).'quarantine';
|
625 |
+
else
|
626 |
+
$GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"] = false;
|
627 |
+
}
|
628 |
+
if ($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"] && is_dir($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"])) {
|
629 |
+
$entries = GOTMLS_getfiles($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]);
|
630 |
+
if (is_array($entries) && count($entries)) {
|
631 |
+
foreach ($entries as $entry) {
|
632 |
+
if (is_file($file = GOTMLS_trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).$entry)) {
|
633 |
+
if (GOTMLS_get_ext($entry) == "gotmls" && ($GOTMLS_file_contents = @file_get_contents($file))) {
|
634 |
+
$insert = array("post_author"=>GOTMLS_get_current_user_id(), "ping_status"=>"imported", "post_status"=>"private", "post_type"=>"GOTMLS_quarantine", "post_content"=>GOTMLS_encode($GOTMLS_file_contents), "post_mime_type"=>md5($GOTMLS_file_contents));//! comment_status post_password post_name to_ping post_parent guid menu_order";
|
635 |
+
if (!($insert["comment_count"] = @filesize($file)))
|
636 |
+
$insert["comment_count"] = strlen($GOTMLS_file_contents);
|
637 |
+
$file_date = explode(".", $entry);
|
638 |
+
$insert["post_date"] = date("Y-m-d H:i:s", filemtime($file));
|
639 |
+
$insert["post_date_gmt"] = $insert["post_date"];
|
640 |
+
$insert["post_modified"] = $insert["post_date"];
|
641 |
+
$match = '/^(20)?([0-5][0-9])[\-: \/]*(0*[1-9]|1[0-2])[\-: \/]*(0*[1-9]|[12][0-9]|3[01])[\-: \/]*([0-5][0-9])[\-: \/]*([0-5][0-9])$/';
|
642 |
+
if (count($file_date) > 2 && strlen($file_date[0]) == 5 && preg_match($match, GOTMLS_sexagesimal($file_date[0])))
|
643 |
+
$insert["post_modified"] = GOTMLS_sexagesimal($file_date[0]).":00";
|
644 |
+
elseif (count($file_date) > 3 && strlen($file_date[1]) == 5 && preg_match($match, GOTMLS_sexagesimal($file_date[1])))
|
645 |
+
$insert["post_modified"] = GOTMLS_sexagesimal($file_date[1]).":00";
|
646 |
+
$insert["post_modified_gmt"] = $insert["post_modified"];
|
647 |
+
$insert["post_title"] = GOTMLS_decode($file_date[count($file_date)-2]);
|
648 |
+
if (is_file($insert["post_title"]) && ($GOTMLS_new_contents = file_get_contents($insert["post_title"])))
|
649 |
+
$insert["post_content_filtered"] = GOTMLS_encode($GOTMLS_new_contents);
|
650 |
+
//! pinged post_excerpt
|
651 |
+
if ($wpdb->insert($wpdb->posts, $insert))
|
652 |
+
unlink(trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).$entry);
|
653 |
+
} elseif (basename($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]) == "quarantine")
|
654 |
+
unlink(trailingslashit($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]).$entry);
|
655 |
+
}
|
656 |
+
}
|
657 |
+
}
|
658 |
+
if (basename($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]) == "quarantine")
|
659 |
+
rmdir($GLOBALS["GOTMLS"]["tmp"]["quarantine_dir"]);
|
660 |
+
}
|
661 |
$Q_Page = '
|
662 |
<form method="POST" target="GOTMLS_iFrame" name="GOTMLS_Form_clean"><input type="hidden" id="GOTMLS_fixing" name="GOTMLS_fixing" value="1">';
|
663 |
$args = array('posts_per_page' => -1, 'orderby' => 'date', 'post_type' => 'GOTMLS_quarantine', "post_status" => "private");
|
672 |
$root_path = implode(GOTMLS_slash(), array_slice(GOTMLS_explode_dir(__file__), 0, (2 + intval($GLOBALS["GOTMLS"]["tmp"]["settings_array"]["scan_level"])) * -1));
|
673 |
while ($my_query->have_posts()) {
|
674 |
$my_query->the_post();
|
|
|
675 |
$Q_Page .= '
|
676 |
<li id="GOTMLS_quarantine_'.$post->ID.'" class="GOTMLS_quarantine_item"><span class="GOTMLS_date">'.$post->post_date_gmt.'</span><span class="GOTMLS_date">'.$post->post_modified_gmt.'</span><input type="checkbox" name="GOTMLS_fix[]" value="'.$post->ID.'" id="check_'.$post->ID.'" onchange="document.getElementById(\'quarantine_buttons\').style.display = \'block\';" /><img src="'.GOTMLS_images_path.'blocked.gif" height=16 width=16 alt="Q">'.GOTMLS_error_link(__("View Quarantined File",'gotmls'), $post->ID).str_replace($root_path, "...", $post->post_title)."</a></li>\n";
|
677 |
}
|
959 |
if (is_dir($dir)) {
|
960 |
$GOTMLS_dirs_at_depth[0] = 1;
|
961 |
$GOTMLS_dir_at_depth[0] = 0;
|
962 |
+
if (isset($_POST['scan_only']) && is_array($_POST['scan_only'])) {
|
|
|
|
|
|
|
|
|
963 |
$GOTMLS_dirs_at_depth[0] += (count($_POST['scan_only']) - 1);
|
964 |
foreach ($_POST['scan_only'] as $only_dir)
|
965 |
if (is_dir(GOTMLS_trailingslashit($dir).$only_dir))
|
1359 |
if (!file_exists($file))
|
1360 |
die(GOTMLS_html_tags(array("html" => array("body" => sprintf(__("The file %s does not exist, it must have already been deleted.",'gotmls'), $file)."<script type=\"text/javascript\">\nwindow.parent.showhide('GOTMLS_iFrame', true);\n</script>"))));
|
1361 |
else {
|
|
|
|
|
|
|
|
|
|
|
1362 |
GOTMLS_scanfile($file);
|
1363 |
$fa = "";
|
1364 |
$function = 'GOTMLS_decode';
|
1404 |
}
|
1405 |
}
|
1406 |
window.parent.showhide("GOTMLS_iFrame", true);
|
1407 |
+
</script><table style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"><tr><td style="width: 100%"><form style="margin: 0;" method="post" onsubmit="return confirm(\''.__("Are you sure this file is not infected and you want to ignore it in future scans?",'gotmls').'\');"><input type="hidden" name="GOTMLS_whitelist" value="'.GOTMLS_encode($file).'"><input type="hidden" name="GOTMLS_chksum" value="'.md5($GOTMLS_file_contents).'O'.GOTMLS_installation_key.'"><input type="submit" value="Whitelist this file" style="float: right;"></form><div id="fileperms" class="shadowed-box rounded-corners" style="display: none; position: absolute; left: 8px; top: 29px; background-color: #ccc; border: medium solid #C00; box-shadow: -3px 3px 3px #666; border-radius: 10px; padding: 10px;"><b>File Details</b><br />encoding: '.mb_detect_encoding($GOTMLS_file_contents).'<br />size: '.strlen($GOTMLS_file_contents).' ('.filesize($file).'bytes)<br />permissions: '.GOTMLS_fileperms($file).'<br />modified:'.date(" Y-m-d H:i:s ", filemtime($file)).'<br />changed:'.date(" Y-m-d H:i:s ", filectime($file)).'</div><div style="overflow: auto;"><span onmouseover="document.getElementById(\'fileperms\').style.display=\'block\';" onmouseout="document.getElementById(\'fileperms\').style.display=\'none\';">'.__("Potential threats in file:",'gotmls').'</span> ('.$fa.' )</div></td></tr><tr><td style="height: 100%"><textarea id="ta_file" style="width: 100%; height: 100%">'.htmlentities(str_replace("\r", "", $GOTMLS_file_contents)).'</textarea></td></tr></table>');
|
1408 |
}
|
1409 |
}
|
1410 |
}
|
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-06-06
|
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"
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: GOTMLS\n"
|
10 |
"Report-Msgid-Bugs-To: eli@gotmls.net\n"
|
11 |
+
"POT-Creation-Date: 2015-06-06 17:29-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"
|
readme.txt
CHANGED
@@ -5,8 +5,8 @@ Author URI: http://wordpress.ieonly.com/category/my-plugins/anti-malware/
|
|
5 |
Contributors: scheeeli, gotmls
|
6 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZHD8QHZ2E7PE
|
7 |
Tags: anti-malware, security, scanner, automatic, repair, remove, malware, virus, threat, hacked, malicious, infection, timthumb, exploit, block, brute-force, wp-login, patch, antimalware, revslider, Revolution Slider
|
8 |
-
Version: 4.15.
|
9 |
-
Stable tag: 4.15.
|
10 |
Requires at least: 3.3
|
11 |
Tested up to: 4.2.2
|
12 |
|
@@ -94,7 +94,7 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
|
|
94 |
|
95 |
== Changelog ==
|
96 |
|
97 |
-
= 4.15.
|
98 |
* Moved the quarantine files into the database and deleted the old directory in uploads.
|
99 |
* Fixed some minor formatting issues in the HTML output on the settings page.
|
100 |
* Added a warning message if base64_decode has been disabled.
|
@@ -335,7 +335,7 @@ sucuri.net caches their scan results and will not refresh the scan until you cli
|
|
335 |
|
336 |
== Upgrade Notice ==
|
337 |
|
338 |
-
= 4.15.
|
339 |
Moved the quarantine files into the database and deleted the old directory in uploads, fixed some minor HTML formatting issues, and added a warning if base64_decode is disabled.
|
340 |
|
341 |
= 4.15.24 =
|
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.26
|
9 |
+
Stable tag: 4.15.26
|
10 |
Requires at least: 3.3
|
11 |
Tested up to: 4.2.2
|
12 |
|
94 |
|
95 |
== Changelog ==
|
96 |
|
97 |
+
= 4.15.26 =
|
98 |
* Moved the quarantine files into the database and deleted the old directory in uploads.
|
99 |
* Fixed some minor formatting issues in the HTML output on the settings page.
|
100 |
* Added a warning message if base64_decode has been disabled.
|
335 |
|
336 |
== Upgrade Notice ==
|
337 |
|
338 |
+
= 4.15.26 =
|
339 |
Moved the quarantine files into the database and deleted the old directory in uploads, fixed some minor HTML formatting issues, and added a warning if base64_decode is disabled.
|
340 |
|
341 |
= 4.15.24 =
|