.jp以外のドメインからの投稿を禁止する †
スパム投稿のほとんどは海外から行われます。投稿もとのドメインを調べて、海外からの投稿であると判断できれば、投稿を拒否することは、スパム対策として有効です。
例えば、OTD掲示板では、次のようなドメインからの投稿を規制しているということです。
.ae .ar .at .au .be .bg .bk .bn .br .by .ca .cc .ch .cl .cn .co .cr .cz .de
.dk .do .ee .es .eu .fi .fm .fr .gr .hk .hr .hu .id .ie .il .in .is .it .ke
.kg .kr .mu .mx .my .nl .nu .nz .om .ph .sa .se .sg .si .sk .sv .th .tt .tw
.ua .uk .us .uy .pe .pk .pl .ru .ro .ve .za
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| | $remote_addr = $ENV{'REMOTE_ADDR'};
$remote_host = $ENV{'REMOTE_HOST'};
if (!$remote_host || $remote_host eq $remote_addr)
{
$remote_host = gethostbyaddr(pack('C4',split(/\./, $remote_addr)),2);
}
if (!$remote_host || $remote_host eq $remote_addr)
{
print 'ホスト名の逆引きができないホストからの投稿は禁止されています。';
exit;
}
if ($remote_host !~ /\.jp$/)
{
print '.jpドメイン以外のホストからの投稿は禁止されています。';
exit;
}
print 'ホストは.jpドメインです。';
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| //ホスト名を取得する
$remote_host = $_SERVER['REMOTE_HOST'];
if (empty($remote_host) || $remote_host == $_SERVER['REMOTE_ADDR'])
{
$remote_host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
}
//ホスト名が取得できなかった時
if ($remote_host == $_SERVER['REMOTE_ADDR'])
{
exit('ホスト名の逆引きができないホストからの投稿は禁止されています。');
}
//許可されたホストか調べる
//ここでは、.jpドメインだけを許可する
if (!preg_match('/\.jp$/', $remote_host))
{
exit('.jpドメイン以外のホストからの投稿は禁止されています。');
}
exit('ホストは.jpドメインです。');
|
ページ情報 |
- 作成日 : 2007-05-14 (月) 01:31:04
- 作成者 : DOBON!
- 最終編集日 : 2007-06-23 (土) 02:11:36
- 最終編集者 : DOBON!
|