PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.8
JetFormBuilder — Dynamic Blocks Form Builder v3.0.8
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 / includes / classes / security / wp-nonce-tools.php
jetformbuilder / includes / classes / security Last commit date
csrf-token-model.php 3 years ago csrf-token-view.php 3 years ago csrf-tools.php 3 years ago wp-nonce-tools.php 3 years ago
wp-nonce-tools.php
67 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Classes\Security;
5
6 use Jet_Form_Builder\Exceptions\Request_Exception;
7
8 class Wp_Nonce_Tools {
9
10 const KEY = '_wpnonce';
11
12 public static function register() {
13 add_filter(
14 'jet-form-builder/request-handler/request',
15 array( static::class, 'handle_request' )
16 );
17 add_filter(
18 'jet-form-builder/message-types',
19 array( static::class, 'handle_messages' )
20 );
21 }
22
23 public static function get_nonce_id(): string {
24 $form_id = jet_fb_live_args()->form_id;
25
26 return "jet-form-builder-wp-nonce-{$form_id}";
27 }
28
29 public static function get_nonce_field(): string {
30 if ( ! jet_fb_live_args()->is_use_nonce() ) {
31 return '';
32 }
33
34 return wp_nonce_field( static::get_nonce_id(), self::KEY, true, false );
35 }
36
37 public static function verify( $nonce ): bool {
38 return ( ! jet_fb_live_args()->is_use_nonce() || wp_verify_nonce( $nonce, static::get_nonce_id() ) );
39 }
40
41 /**
42 * @param array $request
43 *
44 * @return array
45 * @throws Request_Exception
46 */
47 public static function handle_request( array $request ): array {
48 $nonce = $request[ self::KEY ] ?? '';
49
50 if ( ! self::verify( $nonce ) ) {
51 throw new Request_Exception( 'nonce_failed' );
52 }
53
54 return $request;
55 }
56
57 public static function handle_messages( array $messages ): array {
58 $messages['nonce_failed'] = array(
59 'label' => __( 'WP nonce validation failed', 'jet-form-builder' ),
60 'value' => __( 'Invalid nonce', 'jet-form-builder' ),
61 );
62
63 return $messages;
64 }
65
66 }
67