PluginProbe ʕ •ᴥ•ʔ
Contact Form 7 / 5.8.2
Contact Form 7 v5.8.2
6.1.6 5.0.2 5.0.3 5.0.4 5.0.5 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.2 5.2.1 5.2.2 5.3 5.3.1 5.3.2 5.4 5.4.1 5.4.2 5.5 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.6.1 5.6 5.6.1 5.6.2 5.6.3 5.6.4 5.7 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.5.1 5.7.6 5.7.7 5.8 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.9 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 6.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.0.6 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 trunk 1.1 1.10 1.10.0.1 1.10.1 1.2 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.5 1.6 1.6.1 1.7 1.7.1 1.7.2 1.7.4 1.7.5 1.7.6 1.7.6.1 1.7.7 1.7.7.1 1.7.8 1.8 1.8.0.1 1.8.0.2 1.8.0.3 1.8.0.4 1.8.1 1.8.1.1 1.9 1.9.1 1.9.2 1.9.2.1 1.9.2.2 1.9.3 1.9.4 1.9.5 1.9.5.1 2.0 2.0-beta 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1 2.1.1 2.1.2 2.2 2.2.1 2.3 2.3.1 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 3.0 3.0-beta 3.0.1 3.0.2 3.0.2.1 3.1 3.1.1 3.1.2 3.2 3.2.1 3.3 3.3.1 3.3.2 3.3.3 3.4 3.4.1 3.4.2 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.6 3.7 3.7.1 3.7.2 3.8 3.8.1 3.9 3.9-beta 3.9.1 3.9.2 3.9.3 4.0 4.0.1 4.0.2 4.0.3 4.1 4.1-beta 4.1.1 4.1.2 4.2 4.2-beta 4.2.1 4.2.2 4.3 4.3.1 4.4 4.4.1 4.4.2 4.5 4.5.1 4.6 4.6.1 4.7 4.8 4.8.1 4.9 4.9.1 4.9.2 5.0 5.0.1
contact-form-7 / modules / disallowed-list.php
contact-form-7 / modules Last commit date
akismet 2 years ago constant-contact 3 years ago recaptcha 2 years ago sendinblue 2 years ago stripe 2 years ago acceptance.php 3 years ago checkbox.php 3 years ago count.php 3 years ago date.php 3 years ago disallowed-list.php 4 years ago doi-helper.php 4 years ago file.php 3 years ago flamingo.php 3 years ago hidden.php 7 years ago listo.php 3 years ago number.php 3 years ago quiz.php 4 years ago really-simple-captcha.php 3 years ago reflection.php 3 years ago response.php 6 years ago select.php 3 years ago submit.php 4 years ago text.php 3 years ago textarea.php 3 years ago
disallowed-list.php
91 lines
1 <?php
2
3 add_filter( 'wpcf7_spam', 'wpcf7_disallowed_list', 10, 2 );
4
5 function wpcf7_disallowed_list( $spam, $submission ) {
6 if ( $spam ) {
7 return $spam;
8 }
9
10 $target = wpcf7_array_flatten( $submission->get_posted_data() );
11 $target[] = $submission->get_meta( 'remote_ip' );
12 $target[] = $submission->get_meta( 'user_agent' );
13 $target = implode( "\n", $target );
14
15 $word = wpcf7_check_disallowed_list( $target );
16
17 $word = wpcf7_apply_filters_deprecated(
18 'wpcf7_submission_is_blacklisted',
19 array( $word, $submission ),
20 '5.3',
21 'wpcf7_submission_has_disallowed_words'
22 );
23
24 $word = apply_filters(
25 'wpcf7_submission_has_disallowed_words',
26 $word,
27 $submission
28 );
29
30 if ( $word ) {
31 if ( is_bool( $word ) ) {
32 $reason = __( "Disallowed words are used.", 'contact-form-7' );
33 } else {
34 $reason = sprintf(
35 __( "Disallowed words (%s) are used.", 'contact-form-7' ),
36 implode( ', ', (array) $word )
37 );
38 }
39
40 $submission->add_spam_log( array(
41 'agent' => 'disallowed_list',
42 'reason' => $reason,
43 ) );
44 }
45
46 $spam = (bool) $word;
47
48 return $spam;
49 }
50
51 function wpcf7_check_disallowed_list( $target ) {
52 $mod_keys = get_option( 'disallowed_keys' );
53
54 if ( is_scalar( $mod_keys ) ) {
55 $mod_keys = trim( $mod_keys );
56 } else {
57 $mod_keys = '';
58 }
59
60 if ( '' === $mod_keys ) {
61 return false;
62 }
63
64 foreach ( explode( "\n", $mod_keys ) as $word ) {
65 $word = trim( $word );
66 $length = strlen( $word );
67
68 if ( $length < 2 or 256 < $length ) {
69 continue;
70 }
71
72 $pattern = sprintf( '#%s#i', preg_quote( $word, '#' ) );
73
74 if ( preg_match( $pattern, $target ) ) {
75 return $word;
76 }
77 }
78
79 return false;
80 }
81
82 function wpcf7_blacklist_check( $target ) {
83 wpcf7_deprecated_function(
84 __FUNCTION__,
85 '5.3',
86 'wpcf7_check_disallowed_list'
87 );
88
89 return wpcf7_check_disallowed_list( $target );
90 }
91