PluginProbe
WebTotem Security / 2.2.4
WebTotem Security v2.2.4
3.0.1 3.0.0 trunk 1.0 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 2.0 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.1 2.2.2 2.2.3 2.2.4 All 109 releases
wt-security / wt-security.php

wt-security.php in WebTotem Security 2.2.4, at wt-security.php

172 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php defined('ABSPATH') or die("Protected By WT!");
2
3 /*
4 Plugin Name: WT Security
5 Description: WT is a SaaS which provides powerful tools for securing and monitoring your website in one place in easy and flexible way.
6 Author: WT Security
7 Version: 2.2.4
8 */
9
10 define("WTSEC_PAGE_TITLE", 'Dashboard');
11 define("WTSEC_MENU_TITLE", 'WT Security');
12 define("WTSEC_PLUGIN_PATH", plugin_dir_path(__FILE__));
13 define("WTSEC_PLUGIN_NAME", 'wt-security');
14 define("WTSEC_PLUGIN_PREFIX", 'wtsec_');
15 define("WTSEC_PAGE_PREFIX", WTSEC_PLUGIN_NAME . '-');
16 define("WTSEC_FILE_URL", "https://api.wtotem.com/agent");
17 define("WTSEC_ROOT", WP_PLUGIN_DIR . '/');
18 define("WTSEC_MODULES_DIR", WTSEC_PLUGIN_PATH . 'uploads/');
19 if (is_dir(WTSEC_MODULES_DIR) && is_writable(WTSEC_MODULES_DIR)) {
20 define("WTSEC_INSTALLATION_DIR", WTSEC_MODULES_DIR);
21 define("WTOTEMSEC_INSTALLATION_DIR", WTSEC_MODULES_DIR);
22 } else {
23 define("WTSEC_INSTALLATION_DIR", wp_upload_dir()['basedir'] . '/');
24 define("WTOTEMSEC_INSTALLATION_DIR", wp_upload_dir()['basedir'] . '/');
25 }
26 define("WTSEC_PLUGIN_URL", plugins_url("", __FILE__));
27 define("WTSEC_SITE_URL", str_replace(['http://', 'https://', 'www.', '//', '://'], '', get_site_url()));
28
29 define("WTSEC_PLUGIN_INFORMATION_VERSION", "2.2");
30
31 add_action('admin_init', 'wtsec_admin_init');
32 add_action('wp_loaded', 'wtsec_init');
33
34 function wtsec_init()
35 {
36 require_once WTSEC_PLUGIN_PATH . 'library/App.php';
37 require_once WTSEC_PLUGIN_PATH . 'library/Request.php';
38
39 // WAF include (Если не админка и статус waf = "start", "uninstalled")
40 // && in_array(WTSEC_LIBRARY_App::getOption('waf_status'), ["start", "uninstalled"])
41 if (!is_admin()) {
42 if ($waf = WTSEC_LIBRARY_App::getOption(("waf_installed_file"))) {
43 $path_to_waf = $_SERVER['DOCUMENT_ROOT'] . '/_include_' . $waf;
44 if (is_file($path_to_waf) && is_readable($path_to_waf)) {
45 include_once $path_to_waf;
46 }
47 }
48 }
49
50 if (is_admin()) {
51 require_once WTSEC_PLUGIN_PATH . 'library/WT.php';
52 require_once WTSEC_PLUGIN_PATH . 'library/Localization.php';
53 require_once WTSEC_PLUGIN_PATH . 'library/Idn.php';
54 require_once WTSEC_PLUGIN_PATH . 'library/Session.php';
55 require_once WTSEC_PLUGIN_PATH . 'routes.php';
56 require_once WTSEC_PLUGIN_PATH . 'services.php';
57 require_once WTSEC_PLUGIN_PATH . 'helpers.php';
58
59 function wtsec_request()
60 {
61 return new WTSEC_LIBRARY_Request();
62 }
63 function wtsec_app()
64 {
65 return new WTSEC_LIBRARY_App();
66 }
67 function wtsec_filesystem_init($form_url, $method, $context, $fields = null)
68 {
69 global $wp_filesystem;
70 if (!$creds = request_filesystem_credentials($form_url, $method, false, $context, $fields)) {
71 return false;
72 }
73 if (!WP_Filesystem($creds)) {
74 request_filesystem_credentials($form_url, $method, true, $context);
75 return false;
76 }
77 return true;
78 }
79 function wtsec_locale($lmsg, $args = [])
80 {
81 return WTSEC_LIBRARY_Localization::lmsg($lmsg, $args);
82 }
83 function wtsec_getImagePath($image)
84 {
85 return plugins_url('/htdocs/img/' . $image, __FILE__);
86 }
87 function wtsec_SIS($arr, $key, $form = null)
88 {
89 $key = explode(".", $key);
90 foreach ($key as $_key) {
91 if (!isset($arr[$_key])) {
92 $arr = "";
93 break;
94 }
95 $arr = $arr[$_key];
96 }
97 return !empty($form) ? str_replace("$" . $key, $arr, $form) : $arr;
98 }
99 }
100 }
101
102 function wtsec_admin_init()
103 {
104 if (is_admin() && stripos(wtsec_request()->page, WTSEC_PLUGIN_NAME) !== false) {
105 wp_enqueue_script('subscriber', plugins_url('/htdocs/js/subscriber.js', __FILE__), [], false, true);
106 wp_enqueue_script('d3-v4', plugins_url('/htdocs/js/d3.v4.js', __FILE__), array( 'jquery' ), false, true);
107 wp_enqueue_script('jsdelivr', plugins_url('/htdocs/js/jsdelivr_chart.js', __FILE__), array( 'jquery' ), false, true);
108 wp_enqueue_script('chart', plugins_url('/htdocs/js/Chart.js', __FILE__), [], false, true);
109 wp_enqueue_script('circle-progress', plugins_url('/htdocs/js/circle-progress.js', __FILE__), [], false, true);
110 wp_enqueue_script('range-plugin', plugins_url('/htdocs/js/rangePlugin.js', __FILE__), array( 'jquery' ), false, true);
111 wp_enqueue_script('flatpickr', plugins_url('/htdocs/js/flatpickr.js', __FILE__), array( 'jquery' ), false, true);
112 wp_enqueue_script('filter-calendar', plugins_url('/htdocs/js/filterCalendar.js', __FILE__), array( 'jquery' ), false, true);
113 wp_enqueue_script('line-progress', plugins_url('/htdocs/js/line-progress.js', __FILE__), [], false, true);
114 wp_enqueue_script('main', plugins_url('/htdocs/js/main.js', __FILE__), [], false, true);
115 wp_enqueue_script('ajax', plugins_url( '/htdocs/js/ajax.js', __FILE__ ), array( 'jquery' ),false, true );
116 wp_enqueue_script('subscriber');
117 wp_enqueue_script('d3-v4');
118 wp_enqueue_script('jsdelivr');
119 wp_enqueue_script('chart');
120 wp_enqueue_script('circle-progress');
121 wp_enqueue_script('line-progress');
122 wp_enqueue_script('range-plugin');
123 wp_enqueue_script('flatpickr');
124 wp_enqueue_script('filter-calendar');
125 wp_enqueue_script('main');
126 wp_enqueue_script('ajax');
127
128 wp_register_style('flatpickr-css', 'https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css');
129 wp_register_style('font', 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');
130 wp_register_style('normalize', plugins_url('/htdocs/css/normalize.css', __FILE__));
131 wp_register_style('main', plugins_url('/htdocs/css/main.css', __FILE__));
132 wp_enqueue_style('flatpickr-css');
133 wp_enqueue_style('font');
134 wp_enqueue_style('normalize');
135 wp_enqueue_style('main');
136
137 $page = wtsec_request()->page;
138 if ($page === wtsec_getRoute("login")) {
139 if (WTSEC_LIBRARY_App::authorized()) {
140 wp_safe_redirect(wtsec_getUrl('dashboard'));
141 }
142 } elseif ($page === wtsec_getRoute("logout")) {
143 WTSEC_LIBRARY_App::logout();
144 if (!WTSEC_LIBRARY_App::authorized()) {
145 wp_safe_redirect(wtsec_getUrl('login'));
146 }
147 } elseif ($page === wtsec_getRoute("activate")) {
148 if (WTSEC_LIBRARY_App::authorized()) {
149 wp_safe_redirect(wtsec_getUrl('sites'));
150 }
151 } else {
152 if (!WTSEC_LIBRARY_App::authorized()) {
153 wp_safe_redirect(wtsec_getUrl('login'));
154 }
155 }
156 }
157 }
158
159
160 add_action('init', 'wtsec_StartSession', 1);
161 add_action('wp_logout', 'wtsec_EndSession');
162 add_action('wp_login', 'wtsec_EndSession');
163
164 function wtsec_StartSession() {
165 if(!session_id()) {
166 session_start();
167 }
168 }
169
170 function wtsec_EndSession() {
171 session_destroy ();
172 }