403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/sproduction.datasync/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/sproduction.datasync/lib/remotediagaccess.php
<?php
/**
 * Remote diagnostics page
 *
 * @mail support@s-production.online
 * @link s-production.online
 */

namespace SProduction\Datasync;

use Cassandra\Set,
	Bitrix\Main\Localization\Loc;

class RemoteDiagAccess
{
	const DATE_FORMAT = 'd.m.Y H:i:s';
	const SECRET_SALT = 'Dnekilmedk3.,4./kNMKldfkmil';

	public static function checkAccess($secure_code) {
		$result = false;
		$check_code = self::getCode();
		$state = self::getState();
		if ($secure_code == $check_code && $state['code'] == 'active') {
			$result = true;
		}
		return $result;
	}

	public static function isActive() {
		$result = (Settings::get("ra_active") == 'Y');
		return $result;
	}

	public static function setActive($value) {
		$old_active = self::isActive();
		// Save Active flag
		Settings::save('ra_active', ($value ? 'Y' : 'N'));
		// Check changes
		$new_active = self::isActive();
		if ($new_active && !$old_active) {
			self::generateCode();
			if (!self::getTimeTS()) {
				self::setTime(date(self::DATE_FORMAT, time() + 24 * 3600 * 3));
			}
		}
	}

	public static function getTime() {
		$result = Settings::get('ra_end_time');
		if ($result) {
			$result = date(self::DATE_FORMAT, $result);
		}
		return $result;
	}

	public static function getTimeTS() {
		$result = Settings::get('ra_end_time');
		if ($result) {
			$result = (int)$result;
		}
		return $result;
	}

	public static function setTime($datetime) {
		Settings::save('ra_end_time', strtotime($datetime));
	}

	public static function getCode() {
		$result = Settings::get('ra_code');
		return $result;
	}

	public static function setCode($code) {
		Settings::save('ra_code', $code);
	}

	public static function generateCode() {
		$string = $_SERVER['SERVER_NAME'] . self::SECRET_SALT . strval(microtime(true));
		$code = md5($string);
		self::setCode($code);
	}

	public static function getLink() {
		$result = '';
		$code = self::getCode();
		if ($code) {
			$result = 'https://' . $_SERVER['SERVER_NAME'] . '/bitrix/sprod_dsync_diagnostics.php?sc=' . $code;
		}
		return $result;
	}

	public static function getState() {
		$states = [
			'active' => [
				'code' => 'active',
				'title' => Loc::getMessage("SP_DS_REMOTEDIAGACCESS_STATE_ACTIVE"),
			],
			'not_active' => [
				'code' => 'not_active',
				'title' => Loc::getMessage("SP_DS_REMOTEDIAGACCESS_STATE_NOT_ACTIVE"),
			],
			'active_expired' => [
				'code' => 'active_expired',
				'title' => Loc::getMessage("SP_DS_REMOTEDIAGACCESS_STATE_ACTIVE_EXPIRED"),
			],
		];
		if (!self::isActive()) {
			$state = 'not_active';
		}
		else {
			if (self::getTimeTS() && self::getTimeTS() > time()) {
				$state = 'active';
			}
			else {
				$state = 'active_expired';
			}
		}
		return $states[$state];
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit