function spamshield_gf_spam_check($spam) { /*** * Checks Gravity Forms submissions for spam * Added 1.8.9.9 ***/ $spamshield_options = get_option('spamshield_options'); spamshield_update_session_data($spamshield_options); if (!empty($spamshield_options['disable_gf_shield'])) { return $spam; } $gf_filter_status = $wpss_error_code = ''; $gf_jsck_error = $gf_badrobot_error = FALSE; $pref = 'GF-'; $server_name = RSMP_SERVER_NAME; $server_email_domain = spamshield_get_email_domain($server_name); $gf_serial_post = serialize($_POST); $form_auth_dat = array('comment_author' => '', 'comment_author_email' => '', 'comment_author_url' => ''); /* JS/JQUERY CHECK */ $wpss_key_values = spamshield_get_key_values(); $wpss_jq_key = $wpss_key_values['wpss_jq_key']; $wpss_jq_val = $wpss_key_values['wpss_jq_val']; if (TRUE == WPSS_COMPAT_MODE) { // Fall back to FVFJS Keys instead of jQuery keys from jscripts.php $wpss_jq_key = $wpss_key_values['wpss_js_key']; $wpss_jq_val = $wpss_key_values['wpss_js_val']; } $wpss_jsck_jquery_val = !empty($_POST[$wpss_jq_key]) ? $_POST[$wpss_jq_key] : ''; if (!empty($_POST) && (!isset($_POST[WPSS_REF2XJS]) || $wpss_jsck_jquery_val != $wpss_jq_val)) { $wpss_error_code .= ' ' . $pref . 'JQHFT-7'; } /* EMAIL BLACKLIST */ foreach ($_POST as $k => $v) { if (!is_string($v)) { continue; } $k_lc = spamshield_casetrans('lower', $k); $v_lc = spamshield_casetrans('lower', trim(stripslashes($v))); /* if ( strpos( $k_lc, 'email' ) !== FALSE && is_email( $v_lc ) ) { */ if (is_email($v_lc)) { $email_domain = spamshield_get_domain_from_email($v_lc); if ($email_domain == $server_email_domain) { continue; } if (spamshield_email_blacklist_chk($v_lc)) { $wpss_error_code .= ' ' . $pref . '9200E-BL'; break; } } } /* CONTACT FORM CONTENT BLACKLIST */ foreach ($_POST as $k => $v) { if (!is_string($v)) { continue; } /* $k_lc = spamshield_casetrans('lower',$k); */ $v_lc = spamshield_casetrans('lower', trim(stripslashes($v))); if (spamshield_cf_content_blacklist_chk($v_lc)) { $wpss_error_code .= ' ' . $pref . '10400C-BL'; break; } } /* BAD ROBOT BLACKLIST */ $bad_robot_filter_data = spamshield_bad_robot_blacklist_chk('gravity forms', $gf_filter_status); if (!empty($bad_robot_filter_data['blacklisted'])) { $wpss_error_code .= $bad_robot_filter_data['error_code']; $gf_badrobot_error = TRUE; } /* BLACKLISTED USER */ if (empty($wpss_error_code) && spamshield_ubl_cache()) { $wpss_error_code .= ' ' . $pref . '0-BL'; } $wpss_error_code = trim($wpss_error_code); if (!empty($wpss_error_code)) { $spam = TRUE; spamshield_update_accept_status($form_auth_dat, 'r', 'Line: ' . __LINE__, $wpss_error_code); if (!empty($spamshield_options['comment_logging'])) { spamshield_log_data($form_auth_dat, $wpss_error_code, 'gravity forms', $gf_serial_post); } } else { spamshield_update_accept_status($form_auth_dat, 'a', 'Line: ' . __LINE__); if (!empty($spamshield_options['comment_logging']) && !empty($spamshield_options['comment_logging_all'])) { spamshield_log_data($form_auth_dat, $wpss_error_code, 'gravity forms', $gf_serial_post); } } return $spam; }
function spamshield_cf_link_spam_url_chk($haystack = NULL, $email = NULL) { /*** * Contact Form Link Spam URL Check * Check Anchor Text Links in message content for links to shortened URLs * $haystack is contact form message content ***/ $blacklist_status = FALSE; if (empty($haystack) || empty($email)) { return FALSE; } $email_domain = spamshield_get_email_domain($email); $extracted_urls = spamshield_parse_links($haystack, 'url'); foreach ($extracted_urls as $u => $url) { if (spamshield_urlshort_blacklist_chk($url, $email_domain)) { return TRUE; } } return $blacklist_status; }