PluginProbe
WebTotem Security / 2.3.14
WebTotem Security v2.3.14
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
← All changes | services.php +87 -12 2.2.12.3.14 View file →
@@ -42,14 +42,16 @@
42 42 $target_file = trailingslashit($target_dir) . $file['name'];
43 43 if (!$wp_filesystem->put_contents($target_file, $file['file'])) {
44 44 WTSEC_LIBRARY_Session::setNotification("warning", WTSEC_LIBRARY_Localization::lmsg('could_not_install_file', ['service' => $service, 'directory' => $target_dir]));
45 45 } else {
46 - if ($service === "AM") { wtsec_addCheckFile(); }
47 46 wtsec_app()->set($_service . '_installed_file', $file['name']);
47 + if ($service === "AM") {
48 + wtsec_addCheckFile($file['name']);
49 + }
48 50 }
49 51 }
50 52 if ($service !== "AM") {
51 - wtsec_serviceConnect($uid, $service, $domain . '/' . $file['name']);
53 + //wtsec_serviceConnect($uid, $service, $domain . '/' . $file['name']);
52 54 }
53 55 } catch (Exception $e) {
54 56 WTSEC_LIBRARY_Session::setNotification("error", $e->getMessage());
55 57 return false;
@@ -65,9 +67,9 @@
65 67 break;
66 68 case $_service . "_connect":
67 69 $file = wtsec_getInstalledFile($_service);
68 70 if ($file) {
69 - wtsec_serviceConnect($uid, $service, $domain . '/' . $file);
71 + //wtsec_serviceConnect($uid, $service, $domain . '/' . $file);
70 72 } else {
71 73 WTSEC_LIBRARY_Session::setNotification("warning", WTSEC_LIBRARY_Localization::lmsg('file_not_found', ['service' => $service]));
72 74 }
73 75 break;
@@ -96,9 +98,9 @@
96 98 return true;
97 99 }
98 100
99 101 // Add check file if plugin is activated
100 -function wtsec_addCheckFile(){
102 +function wtsec_addCheckFile($name){
101 103 global $wp_filesystem;
102 104
103 105 if (empty($wp_filesystem)) {
104 106 require_once(ABSPATH . '/wp-admin/includes/file.php');
@@ -112,15 +114,12 @@
112 114 }
113 115
114 116 $target_dir = $wp_filesystem->find_folder(WTSEC_PLUGIN_PATH);
115 117 $target_file = trailingslashit($target_dir) . 'generate.php';
116 - $content = '<?php echo rand()?>';
117 118
118 - if ($wp_filesystem->put_contents($target_file, $content, FS_CHMOD_FILE)) {
119 + if ($wp_filesystem->put_contents($target_file, '<?php exit(); ?>'.$name, FS_CHMOD_FILE)) {
119 120 return true;
120 121 }
121 -
122 - WTSEC_LIBRARY_Session::setNotification("error", "generate fail");
123 122 return false;
124 123 }
125 124
126 125 function wtsec_checkStatus($id, $service)
@@ -149,12 +148,21 @@
149 148 $result = WTSEC_LIBRARY_WT::generateAmFile($id);
150 149 if (!isset($result['data']['auth']['am']['install'])) {
151 150 $file = ['filename' => null, "body" => null];
152 151 } else {
153 - $url = $result['data']['auth']['am']['install'];
154 - $file = WTSEC_LIBRARY_WT::getFileByUrl($url);
152 + $result = $result['data']['auth']['am']['install'];
153 +
154 + $url = $result['downloadLink'];
155 + $amFilename = $result['amFilename'];
156 + $wafFilename = $result['wafFilename'];
157 +
158 + if($wafFilename){
159 + wtsec_app()->set('waf_installed_file', $wafFilename);
160 + }
161 +
162 + $file = WTSEC_LIBRARY_WT::getFileByUrl($url, $amFilename);
155 163 if (empty($file)) {
156 - $file = WTSEC_LIBRARY_WT::getFileByUrl($url);
164 + $file = WTSEC_LIBRARY_WT::getFileByUrl($url, $amFilename);
157 165 }
158 166 }
159 167
160 168 $name = $file["filename"];
@@ -202,8 +210,68 @@
202 210 return false;
203 211 }
204 212 }
205 213
214 +
215 +function wtsec_AVLogsData($logs){
216 + foreach ($logs as $key => $log){
217 + $log = $log['node'];
218 + $log['filePath'] = urldecode($log['filePath']);
219 + $log['text'] = (strlen($log['filePath']) > 40) ? substr($log['filePath'],0,40).'...' : $log['filePath'];
220 + $log['time'] = convertToCurrentTime($log['time']);
221 + $log['class_path'] = '';
222 + $log['class_info'] = '';
223 +
224 + if ($log['event'] === 'modified') {
225 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.info.normal");
226 + $log['class_path'] = "wtotem_file-table__td_changed";
227 + $log['class_info'] = "wtotem_file-table__td_normal";
228 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.changed");
229 + } elseif ($log['event'] === 'quarantine') {
230 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.info.backdoor_virus");
231 + $log['class_path'] = "wtotem_file-table__td_changed";
232 + $log['class_info'] = "wtotem_file-table__td_normal";
233 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.quarantine");
234 + } elseif ($log['event'] === 'infected') {
235 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.info.backdoor_virus");
236 + $log['class_path'] = "wtotem_file-table__td_critical";
237 + $log['class_info'] = "wtotem_file-table__td_critical";
238 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.infected");
239 + } elseif ($log['event'] === 'deleted') {
240 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.info.deleted");
241 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.deleted");
242 + }elseif ($log['event'] === 'new'){
243 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.info.normal");
244 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.new");
245 + }elseif ($log['event'] === 'scanned'){
246 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.info.normal");
247 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.scanned");
248 + }else{
249 + $log['info'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.error");
250 + $log['description'] = WTSEC_LIBRARY_Localization::lmsg("antivirus.status.error");
251 + }
252 +
253 + $logs[$key]['node'] = $log;
254 + }
255 + return $logs;
256 +}
257 +
258 +function wtsec_getConfigs($host_id)
259 +{
260 + $config = WTSEC_LIBRARY_WT::getConfigs($host_id);
261 + return wtsec_arrayIndex($config['data']['auth']['viewer']['sites']['one']['configs'], 'service');
262 +}
263 +
264 +function wtsec_arrayIndex($array, $key){
265 + $newArray = [];
266 + foreach ($array as $item){
267 + if(array_key_exists($key,$item)){
268 + $newArray[$item[$key]] = $item;
269 + }
270 + }
271 + return $newArray;
272 +}
273 +
206 274 function wtsec_button($label = '', $class = '')
207 275 {
208 276 return '<button class="ww-button ' . $class . '">' . $label . '</button>';
209 277 }
@@ -274,5 +342,12 @@
274 342
275 343 function wtsec_getInstalledFile($service)
276 344 {
277 345 return wtsec_app()->get($service . "_installed_file");
278 -}
346 +}
347 +
348 +function wtsec_DeleteAm(){
349 + $host = WTSEC_LIBRARY_WT::getOwnSite();
350 + if(!empty($host)){
351 + WTSEC_LIBRARY_WT::deleteAm($host['id']);
352 + }
353 +}