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;
}
Ejemplo n.º 2
0
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;
}