PluginProbe ʕ •ᴥ•ʔ
Photo Gallery by FooGallery : Responsive Image Gallery, Masonry Gallery & Carousel / trunk
Photo Gallery by FooGallery : Responsive Image Gallery, Masonry Gallery & Carousel vtrunk
trunk 1.10.3 2.0.24 2.1.34 2.2.44 2.3.3 2.4.32 3.0.6 3.1.11 3.1.12 3.1.13 3.1.20 3.1.25 3.1.26 3.1.26.1 3.1.26.2
foogallery / freemius / includes / class-fs-security.php
foogallery / freemius / includes Last commit date
customizer 7 months ago debug 2 years ago entities 7 months ago managers 7 months ago sdk 2 years ago supplements 3 years ago .DS_Store 7 months ago class-freemius-abstract.php 3 years ago class-freemius.php 7 months ago class-fs-admin-notices.php 3 years ago class-fs-api.php 7 months ago class-fs-garbage-collector.php 7 months ago class-fs-hook-snapshot.php 7 months ago class-fs-lock.php 3 years ago class-fs-logger.php 7 months ago class-fs-options.php 8 years ago class-fs-plugin-updater.php 7 months ago class-fs-security.php 7 months ago class-fs-storage.php 7 months ago class-fs-user-lock.php 3 years ago fs-core-functions.php 7 months ago fs-essential-functions.php 2 years ago fs-html-escaping-functions.php 7 months ago fs-plugin-info-dialog.php 7 months ago index.php 3 years ago l10n.php 3 years ago
class-fs-security.php
104 lines
1 <?php
2 /**
3 * @package Freemius
4 * @copyright Copyright (c) 2015, Freemius, Inc.
5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 * @since 1.0.3
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 define( 'WP_FS__SECURITY_PARAMS_PREFIX', 's_' );
14
15 /**
16 * Class FS_Security
17 */
18 class FS_Security {
19 /**
20 * @var FS_Security
21 * @since 1.0.3
22 */
23 private static $_instance;
24 /**
25 * @var FS_Logger
26 * @since 1.0.3
27 */
28 private static $_logger;
29
30 /**
31 * @return \FS_Security
32 */
33 public static function instance() {
34 if ( ! isset( self::$_instance ) ) {
35 self::$_instance = new FS_Security();
36 self::$_logger = FS_Logger::get_logger(
37 WP_FS__SLUG,
38 WP_FS__DEBUG_SDK,
39 WP_FS__ECHO_DEBUG_SDK
40 );
41 }
42
43 return self::$_instance;
44 }
45
46 private function __construct() {
47 }
48
49 /**
50 * @param \FS_Scope_Entity $entity
51 * @param int $timestamp
52 * @param string $action
53 *
54 * @return string
55 */
56 function get_secure_token( FS_Scope_Entity $entity, $timestamp, $action = '' ) {
57 return md5(
58 $timestamp .
59 $entity->id .
60 $entity->secret_key .
61 $entity->public_key .
62 $action
63 );
64 }
65
66 /**
67 * @param \FS_Scope_Entity $entity
68 * @param int|bool $timestamp
69 * @param string $action
70 *
71 * @return array
72 */
73 function get_context_params( FS_Scope_Entity $entity, $timestamp = false, $action = '' ) {
74 if ( false === $timestamp ) {
75 $timestamp = time();
76 }
77
78 return array(
79 's_ctx_type' => $entity->get_type(),
80 's_ctx_id' => $entity->id,
81 's_ctx_ts' => $timestamp,
82 's_ctx_secure' => $this->get_secure_token( $entity, $timestamp, $action ),
83 );
84 }
85
86 /**
87 * Gets a sandbox trial token for a given plugin, plan, and trial timestamp.
88 *
89 * @param FS_Plugin $plugin
90 * @param FS_Plugin_Plan $plan
91 * @param int $trial_timestamp
92 *
93 * @return string
94 */
95 function get_trial_token( FS_Plugin $plugin, FS_Plugin_Plan $plan, $trial_timestamp ) {
96 return md5(
97 $plugin->secret_key . $plugin->public_key .
98 $plan->trial_period .
99 $plan->id .
100 $trial_timestamp
101 );
102 }
103 }
104