2010-11-28 8 views
1

CAPTCHAとスパムコメントチェッカーで迷惑メールを排除するのではなく、に対してcheck each requestを送信し、不正なIPを使用している場合はユーザーをブロックすることをお勧めしますか?スパマーをブロックするためにDNSBLを使用してウェブトラフィックをチェックする必要がありますか?

$blacklists = array('web.sorbs.net', 'opm.tornevall.org'); 
$parts = explode('.', $_SERVER['REMOTE_ADDR']); 
$ip = implode('.', array_reverse($parts)) . '.'; 
foreach($blacklists as $bl) 
{ 
    $check = $ip . $bl; 
    if ($check != gethostbyname($check)) 
    { 
     error_log('PHP Security: [DNSBL] - ' . $_SERVER['REMOTE_ADDR'] . ' - ' . $bl); 
     die('Put a detailed error here so the client knows why they have been blocked'); 
    } 
} 

唯一の問題は、DNSBLまたはDNSルックアップに各要求を行う大規模なコストで優れたユーザーのオーバー熱心なIPブロックになるように思えます。

答えて

0

これは役に立つかもしれませんが、偽陽性と偽陰性の2つを考慮する必要があります。

DNSBLにはかなりの数があります。無実のユーザーを襲った偽陽性、ボットネットの良い塊を逃す偽陰性。私がスパムをオンラインで扱うために見つけた最良の解決策は、CAPTCHAを使用することです。

+1

あなたの主な防衛のためにこれを頼ることができない場合は - いくつかのDNSBLをチェックして、指定されたIPがすべてのDNSBLにある場合にのみアクセスをブロックするとどうなりますか?それは偽陽性を止めるのに役立ち、残りの迷惑メール対策は偽陰性に役立ちます。合理的な音ですか? – Xeoncross

+0

あなたの訪問者の1人が感染した公立図書館を使用している場合、あなたは何をしているのでしょうか?それとも、自分のPCにゾンビがあるのを知らないのですか? –

1

ここで行っているルックアップは十分ではありませんが、代わりに以下のコードのようなものを使用することを検討する必要があります。さらに、このコードは、dnsbl.tornevall.orgがサポートしているipv6解決の種類もサポートしています。

function rblresolve ($ip = '', $rbldomain = '') 
{ 
    if (!$ip) {return false;}      // No data should return nothing 
    if (!$rbldomain) {return false;}  // No rbl = ignore 

    // New ipv6-compatible function 
    $returnthis = (long2ip(ip2long($ip)) != "0.0.0.0" ? explode('.', gethostbyname(implode('.', array_reverse(explode('.', $ip))) . '.' . $rbldomain)) : explode(".", gethostbyname(v6arpa($ip) . "." . $rbldomain))); 
    // 127-bug-checking 
    if (implode(".", $returnthis) != (long2ip(ip2long($ip)) != "0.0.0.0" ? implode('.', array_reverse(explode('.', $ip))) . '.' . $rbldomain : v6arpa($ip) . "." . $rbldomain)) {return $returnthis;} else {return false;} 
} 
function v6arpa($ip) 
{ 
    $unpack = unpack('H*hex', inet_pton($ip)); 
    $hex = $unpack['hex']; 
    return implode('', array_reverse(str_split($hex))); 
} 
関連する問題