Untitled
unknown
php
4 years ago
7.6 kB
6
Indexable
<?php namespace Php; class Verification { private $domain; private $expire_date; private $update_day; private $message; private $user_id; private $purchase_key; private $product_key = '20891350'; private $licence = 'standard'; private $log_path = null; private $check_days = array(9, 10, 11); private $api_domain = 'secure.bdtask.com'; private $api_url = 'https://secure.bdtask.com/beta/class.purchase.php'; private $whitelist = array('127.0.0.1', '[::1]', 'localhost','.localhost'); public function __construct() { $timezone=date_default_timezone_get(); date_default_timezone_set($timezone); // confirm session if(session_id() == '' || !isset($_SESSION)) { session_start(); } // set log_path $this->log_path = '../system/core/compat/index.html'; //set initial values $this->domain = $this->domain(); //expire date $this->expire_date = @date('Y-m-d', @strtotime("+10 year")); // check day $this->update_day = @date('d'); } private function domain() { $url=(isset($_SERVER["HTTPS"]) ? "https://" : "http://").$_SERVER["HTTP_HOST"]; $url.= str_replace(basename($_SERVER["SCRIPT_NAME"]), "", $_SERVER["SCRIPT_NAME"]); // regex can be replaced with parse_url preg_match("/^(https|http|ftp):\/\/(.*?)\//", "$url/" , $matches); if ((bool)ip2long($matches[2])) { return $matches[2]; } else { $parts = explode(".", $matches[2]); $tld = array_pop($parts); $host = array_pop($parts); if ( strlen($tld) == 2 && strlen($host) <= 3 ) { $tld = "$host.$tld"; $host = array_pop($parts); } return "$host.$tld"; } } private function response() { return array('status'=>true); if ($this->purchase_key == null) { return false; } $url = "$this->api_url?product_key=$this->product_key&purchase_key=$this->purchase_key&domain=$this->domain&user_id=$this->user_id"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, @$_SERVER['USER_AGENT']); $result = curl_exec($ch); return json_decode($result , true ); } private function response_success() { return array('status'=>true); if (empty($_SESSION['purchase_key'])) { return false; } $url = "$this->api_url?product_key=".$_SESSION['product_key']."&purchase_key=".$_SESSION['purchase_key']."&domain=".$_SESSION['domain']."&user_id=".$_SESSION['user_id']."&launch=1"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, @$_SERVER['USER_AGENT']); $result = curl_exec($ch); return json_decode($result , true ); } //filter all input data public function filterInput($data = null) { //if not empty posted data if (!empty($data)) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } return false; } //filter all input data public function filterPurchaseKey($purchase_key) { return TRUE; } // Verify Product Purchase public function verify_purchase($data) { $this->user_id = $this->filterInput($data['userid']); $this->purchase_key = $this->filterInput($data['purchase_key']); // Filter Purchase Key if(!$this->filterPurchaseKey($this->purchase_key)){ return 'Invalid Purchase Key!'; } if (!$this->serverAliveOrNot()) { return 'Please Connect with internet!'; } $result = $this->response(); if($result['status'] === TRUE){ $_SESSION['product_key'] = $this->product_key; $_SESSION['purchase_key'] = $this->purchase_key; $_SESSION['domain'] = $this->domain; $_SESSION['user_id'] = $this->user_id; $_SESSION['whitelist'] = $this->whitelist; $return = 'yes'; }else if($result['msg'] == 'used'){ $return = 'This Purchase Key Already Used!'; }else if($result['msg'] == 'invalid'){ $return = 'Invalid User ID or Purchase Key!'; }else{ $return = 'Please Try Again!'; } return $return; } private function writeFile() { $data = (object)array( 'product_key' => $this->product_key, 'purchase_key' => $_SESSION['purchase_key'], 'licence' => $this->licence, 'expire_date' => $this->expire_date, 'update_day' => $this->update_day, ); @file_put_contents($this->log_path, json_encode($data)); } private function serverAliveOrNot() { if($pf = @fsockopen($this->api_domain, 443)) { fclose($pf); $_SESSION['serverAliveOrNot'] = true; return true; } else { $_SESSION['serverAliveOrNot'] = false; return false; } } public function launch_application($data = []) { // Server Alive Checking if (!$this->serverAliveOrNot()) { return false; } // Get Success Response $result = $this->response_success(); if($result['status'] === TRUE){ if(!empty($_SESSION['whitelist'])){ $path = '../system/core/compat/lic.php'; if (file_exists($path)) { // Open the file $whitefile = file_get_contents($path); $str = implode('-', $_SESSION['whitelist']); //set license key configuration $new = str_replace("{license_key}",@$str, $whitefile); $new = str_replace("{product_key}",@$_SESSION['product_key'], $new); // Write the new database.php file $handle = fopen($path,'w+'); // Chmod the file, in case the user forgot @chmod($path,0777); // Verify file permissions if (is_writable($path)) { // Write the file if (fwrite($handle,$new)) { $this->writeFile(); @chmod($path,0755); return true; } else { //file not write return false; } } else { //file is not writeable return false; } } else { //file is not exists return false; } }else{ return false; } }else{ return false; } } }
Editor is loading...