86 lines
1.7 KiB
PHP
86 lines
1.7 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* @package Freemius
|
||
|
* @copyright Copyright (c) 2015, Freemius, Inc.
|
||
|
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
||
|
* @since 1.0.3
|
||
|
*/
|
||
|
|
||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
define( 'WP_FS__SECURITY_PARAMS_PREFIX', 's_' );
|
||
|
|
||
|
/**
|
||
|
* Class FS_Security
|
||
|
*/
|
||
|
class FS_Security {
|
||
|
/**
|
||
|
* @var FS_Security
|
||
|
* @since 1.0.3
|
||
|
*/
|
||
|
private static $_instance;
|
||
|
/**
|
||
|
* @var FS_Logger
|
||
|
* @since 1.0.3
|
||
|
*/
|
||
|
private static $_logger;
|
||
|
|
||
|
/**
|
||
|
* @return \FS_Security
|
||
|
*/
|
||
|
public static function instance() {
|
||
|
if ( ! isset( self::$_instance ) ) {
|
||
|
self::$_instance = new FS_Security();
|
||
|
self::$_logger = FS_Logger::get_logger(
|
||
|
WP_FS__SLUG,
|
||
|
WP_FS__DEBUG_SDK,
|
||
|
WP_FS__ECHO_DEBUG_SDK
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return self::$_instance;
|
||
|
}
|
||
|
|
||
|
private function __construct() {
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param \FS_Scope_Entity $entity
|
||
|
* @param int $timestamp
|
||
|
* @param string $action
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
function get_secure_token( FS_Scope_Entity $entity, $timestamp, $action = '' ) {
|
||
|
return md5(
|
||
|
$timestamp .
|
||
|
$entity->id .
|
||
|
$entity->secret_key .
|
||
|
$entity->public_key .
|
||
|
$action
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param \FS_Scope_Entity $entity
|
||
|
* @param int|bool $timestamp
|
||
|
* @param string $action
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
function get_context_params( FS_Scope_Entity $entity, $timestamp = false, $action = '' ) {
|
||
|
if ( false === $timestamp ) {
|
||
|
$timestamp = time();
|
||
|
}
|
||
|
|
||
|
return array(
|
||
|
's_ctx_type' => $entity->get_type(),
|
||
|
's_ctx_id' => $entity->id,
|
||
|
's_ctx_ts' => $timestamp,
|
||
|
's_ctx_secure' => $this->get_secure_token( $entity, $timestamp, $action ),
|
||
|
);
|
||
|
}
|
||
|
}
|