PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.4.7
JetFormBuilder — Dynamic Blocks Form Builder v3.4.7
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / modules / security / csrf / csrf-token-model.php
jetformbuilder / modules / security / csrf Last commit date
csrf-token-model.php 2 years ago csrf-token-view.php 2 years ago csrf-tools.php 1 year ago module.php 1 year ago
csrf-token-model.php
83 lines
1 <?php
2
3
4 namespace JFB_Modules\Security\Csrf;
5
6 use Jet_Form_Builder\Db_Queries\Base_Db_Model;
7
8 // If this file is called directly, abort.
9 if ( ! defined( 'WPINC' ) ) {
10 die;
11 }
12
13 class Csrf_Token_Model extends Base_Db_Model {
14
15 private static $deleted = false;
16
17 /**
18 * @return string
19 */
20 public static function table_name(): string {
21 return 'csrf_tokens';
22 }
23
24 /**
25 * @return array
26 */
27 public static function schema(): array {
28 return array(
29 self::PRIMARY_ID => 'bigint(20) NOT NULL AUTO_INCREMENT',
30 'client_id' => 'varchar(155)',
31 'token' => 'text',
32 self::CREATED_AT => 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP',
33 );
34 }
35
36 public function schema_engine() {
37 return self::MyISAM;
38 }
39
40 /**
41 * @return array
42 */
43 public static function schema_keys(): array {
44 return array(
45 'id' => 'primary key',
46 'client_id' => 'unique',
47 );
48 }
49
50 public static function clear() {
51 global $wpdb;
52
53 if ( self::$deleted ) {
54 return;
55 }
56
57 self::$deleted = true;
58
59 /** @var \DateTimeImmutable $datetime_limit */
60 $datetime_limit = apply_filters(
61 'jet-form-builder/security/csrf-token/datetime-limit',
62 current_datetime()->modify( '-4 hours' )
63 );
64
65 $self = ( new static() )->create();
66
67 // phpcs:disable WordPress.DB
68 $wpdb->query(
69 $wpdb->prepare(
70 "
71 DELETE FROM {$self::table()}
72 WHERE 1=1
73 AND TIMESTAMP(`created_at`) <= TIMESTAMP(%s)
74 ",
75 $datetime_limit->format( 'Y-m-d H:i:s' )
76 )
77 );
78 // phpcs:enable WordPress.DB
79 }
80
81
82 }
83