Example #1
0
function spam_login_filter_check_spammer($register_email, $register_ip, $checkemail = true)
{
    $spammer = false;
    if ($checkemail) {
        $email_whitelisted = spam_login_filter_is_email_whitelisted($register_email);
    } else {
        $email_whitelisted = true;
    }
    $ip_whitelisted = spam_login_filter_is_ip_whitelisted($register_ip);
    if ($email_whitelisted && $ip_whitelisted) {
        // short circuit
        return true;
    }
    //Mail domain blacklist
    if (elgg_get_plugin_setting('use_mail_domain_blacklist', 'spam_login_filter') == "yes" && !$email_whitelisted) {
        $blacklistedMailDomains = preg_split('/\\s+/', spam_login_filter_custom_strip_tags(elgg_get_plugin_setting('blacklisted_mail_domains', 'spam_login_filter')), -1, PREG_SPLIT_NO_EMPTY);
        $mailDomain = explode("@", $register_email);
        foreach ($blacklistedMailDomains as $domain) {
            if ($mailDomain[1] == $domain) {
                register_error(elgg_echo('spam_login_filter:access_denied_domain_blacklist'));
                spam_login_filter_notify_admin($register_email, $register_ip, "Internal domain blacklist");
                $spammer = true;
                break;
            }
        }
    }
    if (!$spammer) {
        //Mail blacklist
        if (elgg_get_plugin_setting('use_mail_blacklist', 'spam_login_filter') == "yes" && !$email_whitelisted) {
            $blacklistedMails = preg_split('/\\s+/', spam_login_filter_custom_strip_tags(elgg_get_plugin_setting('blacklisted_mails', 'spam_login_filter')), -1, PREG_SPLIT_NO_EMPTY);
            foreach ($blacklistedMails as $blacklistedMail) {
                if ($blacklistedMail == $register_email) {
                    register_error(elgg_echo('spam_login_filter:access_denied_mail_blacklist'));
                    spam_login_filter_notify_admin($register_email, $register_ip, "Internal e-mail blacklist");
                    $spammer = true;
                    break;
                }
            }
        }
    }
    if (!$spammer) {
        //StopForumSpam
        if (elgg_get_plugin_setting('use_stopforumspam', 'spam_login_filter') == "yes") {
            //check the e-mail adress
            $url = "http://www.stopforumspam.com/api?email=" . $register_email . "&f=serial";
            $return = spam_login_filter_file_get_conditional_contents($url);
            if ($return != false) {
                $data = unserialize($return);
                $email_frequency = $data['email']['frequency'];
                if ($email_frequency != '0' && !$email_whitelisted) {
                    register_error(elgg_echo('spam_login_filter:access_denied_mail_blacklist'));
                    spam_login_filter_notify_admin($register_email, $register_ip, "Stopforumspam e-mail blacklist");
                    $spammer = true;
                }
            }
            if (!$spammer && !$ip_whitelisted) {
                //e-mail not found in the database, now check the ip
                $url = "http://www.stopforumspam.com/api?ip=" . $register_ip . "&f=serial";
                $return = spam_login_filter_file_get_conditional_contents($url);
                if ($return != false) {
                    $data = unserialize($return);
                    $ip_frequency = $data['ip']['frequency'];
                    if ($ip_frequency != '0') {
                        register_error(elgg_echo('spam_login_filter:access_denied_ip_blacklist'));
                        spam_login_filter_notify_admin($register_email, $register_ip, "Stopforumspam IP blacklist");
                        $spammer = true;
                    }
                }
            }
        }
    }
    if (!$spammer) {
        //Fassim
        if (elgg_get_plugin_setting('use_fassim', 'spam_login_filter') == "yes") {
            $fassim_api_key = elgg_get_plugin_setting('fassim_api_key', 'spam_login_filter');
            $fassim_check_email = elgg_get_plugin_setting('fassim_check_email', 'spam_login_filter');
            $fassim_check_ip = elgg_get_plugin_setting('fassim_check_ip', 'spam_login_filter');
            $fassim_block_proxies = elgg_get_plugin_setting('fassim_block_proxies', 'spam_login_filter');
            $fassim_block_top_spamming_isps = elgg_get_plugin_setting('fassim_block_top_spamming_isps', 'spam_login_filter');
            $fassim_block_top_spamming_domains = elgg_get_plugin_setting('fassim_block_top_spamming_domains', 'spam_login_filter');
            $fassim_blocked_country_list = elgg_get_plugin_setting('fassim_blocked_country_list', 'spam_login_filter');
            $fassim_blocked_region_list = elgg_get_plugin_setting('fassim_blocked_region_list', 'spam_login_filter');
            if (!empty($fassim_api_key) && preg_match('/^[0-9a-z]{8}(-[0-9a-z]{4}){3}-[0-9a-z]{12}$/i', $fassim_api_key)) {
                $url = 'http://api.fassim.com/regcheck.php?apikey=' . $fassim_api_key . '&email=' . $register_email . "&ip=" . $register_ip . '&proxy=' . $fassim_block_proxies . '&topisp=' . $fassim_block_top_spamming_isps . '&topdm=' . $fassim_block_top_spamming_domains . '&cc=' . $fassim_blocked_country_list . '&region=' . $fassim_blocked_region_list . '&hostForumVersion=ELGG';
                $return = spam_login_filter_file_get_conditional_contents($url);
                if ($return != false) {
                    $results = json_decode($return);
                    if ($results != NULL) {
                        if ($fassim_check_email == 1 && isset($results->email_status) && $results->email_status == true) {
                            if (!$email_whitelisted) {
                                register_error(elgg_echo('spam_login_filter:access_denied_mail_blacklist'));
                                spam_login_filter_notify_admin($register_email, $register_ip, "Fassim e-mail blacklist");
                                $spammer = true;
                            }
                        }
                        if ($fassim_check_ip == 1 && isset($results->ip_status) && $results->ip_status == true) {
                            if (!$ip_whitelisted) {
                                register_error(elgg_echo('spam_login_filter:access_denied_ip_blacklist'));
                                spam_login_filter_notify_admin($register_email, $register_ip, "Fassim IP blacklist");
                                $spammer = true;
                            }
                        }
                        if ($fassim_block_proxies == 1 && isset($results->proxy) && $results->proxy == true) {
                            register_error(elgg_echo('spam_login_filter:access_denied_ip_blacklist'));
                            spam_login_filter_notify_admin($register_email, $register_ip, "Fassim proxy blacklist");
                            $spammer = true;
                        }
                        if ($fassim_block_top_spamming_isps == 1 && isset($results->top_isp) && $results->top_isp == true) {
                            register_error(elgg_echo('spam_login_filter:access_denied_ip_blacklist'));
                            spam_login_filter_notify_admin($register_email, $register_ip, "Fassim top ISP blacklist");
                            $spammer = true;
                        }
                        if ($fassim_block_top_spamming_domains == 1 && isset($results->top_domain) && $results->top_domain == true) {
                            register_error(elgg_echo('spam_login_filter:access_denied_domain_blacklist'));
                            spam_login_filter_notify_admin($register_email, $register_ip, "Fassim top domains blacklist");
                            $spammer = true;
                        }
                        if (!empty($fassim_blocked_country_list) && isset($results->country_match) && $results->country_match == true) {
                            register_error(elgg_echo('spam_login_filter:access_denied_country_blacklist'));
                            spam_login_filter_notify_admin($register_email, $register_ip, "Fassim country blacklist");
                            $spammer = true;
                        }
                        if (!empty($fassim_blocked_region_list) && isset($results->region) && $results->region == true) {
                            register_error(elgg_echo('spam_login_filter:access_denied_region_blacklist'));
                            spam_login_filter_notify_admin($register_email, $register_ip, "Fassim region blacklist");
                            $spammer = true;
                        }
                    }
                }
            }
        }
    }
    return !$spammer;
}
Example #2
0
            $ip->container_guid = elgg_get_site_entity()->guid;
            $ip->save();
        }
        elgg_set_ignore_access($ia);
    }
}
//Report to stopforumspam.com
if (elgg_get_plugin_setting('use_stopforumspam', 'spam_login_filter') == "yes") {
    if (empty($api_key)) {
        register_error(elgg_echo('spam_login_filter:empty_api_key_error'));
        forward($forward);
    }
    if (!empty($ip_address) && !empty($api_key)) {
        //Report the spammer
        $url = 'http://www.stopforumspam.com/add.php?username='******'&ip_addr=' . $ip_address . '&email=' . $email . '&api_key=' . $api_key;
        $return = spam_login_filter_file_get_conditional_contents($url);
        if ($return == false) {
            register_error(elgg_echo('spam_login_filter:unable_report'));
            forward($forward);
        }
    }
}
if ($obj instanceof ElggUser && $obj->canEdit()) {
    if ($obj->delete()) {
        system_message(sprintf(elgg_echo('spam_login_filter:user_deleted'), $name));
        $deleted = true;
    } else {
        register_error(elgg_echo('spam_login_filter:user_not_deleted'));
    }
} else {
    register_error(elgg_echo('spam_login_filter:user_not_deleted'));