Anti-Spam-ACP
Anti-Spam-ACP copied to clipboard
Feature suggestion: IP check at registration for StopForumSpam
Suggestion based on this thread: http://nmguse.webfactional.com/forum/viewtopic.php?f=57&t=3455&p=15115#p15109
EXreaction wrote:IP addresses are not checked against Stop Forum Spam. IP addresses are too dynamic and it's just as likely that legitimate users will be banned from an IP address as a spammer.
I would suggest to reconsider using this, in conjunction with the "lastseen" value sent from stopforumspam. A spam IP that was last seen less than (for example) 2 weeks ago could be considered as a spammer, and is very unlikely to be used by a legitimate user within 2 weeks.
Blocking usernames and emails does nothing these days, gmail virtually allows anybody to create an infinite amount of emails, by just adding as many "." characters they want in the email address. Usernames, similarly, are generated randomly by spambots.
Akismet integration has been very effective on my forum so far, but the stopforumspam integration does not feel very useful yet, without IP support. But I agree that without some form of Date comparison blocking all IPs is a bad idea.
Here is the change I am suggesting, in asacp.php.
$stop_forum_spam_urls = array( 'api?username=' . urlencode($data['username']), 'api?email=' . urlencode($data['email']), 'api?ip=' . $user->ip, );
foreach ($stop_forum_spam_urls as $url) { $errstr = $errno = ''; $file = get_remote_file('stopforumspam.com', '', $url, $errstr, $errno);
if ($file !== false) { $file = str_replace("\r\n", "\n", $file); $file = explode("\n", $file);
$appears = $frequency = $lastseen = false;
foreach ($file as $line)
{
if (strpos($line, '
if ($appears && $frequency >= $config['asacp_sfs_min_freq'] && ($lastseen > strtotime("now - 1 month"))) { self::$sfs_spam = true; } }