CGI-BBS > CGI > Perl > Perlの改造で特定のメールアドレスで登録できないようにしたい。


カレッヂ
カレッヂ


質問者 西村  投稿日 2007/8/15(水) 23:22:37
皆様はじめまして

私は個人でランキングサイトをつくっていたのですが
アダルトサイトの登録攻撃がすごく閉鎖においこまれました。

惜しんで下さる方もおられたので再開したいのですが
またこのままですと同じことになります。

せめて特定のメールアドレスを排除したいのですが
なにぶんそこまでの知識がないものでお詳しい皆さんのお知恵を
お借りできればとここにたどり着きました。

なにとぞよろしくお願いいたします。


ここのランキングサイトをつかっておりました
http://dream.lib.net/room/cgi/e_ranklink.html

【習熟度】多少の設置経験

回答者 通りすがり  [削除]  投稿日 2010/1/28(木) 08:37:38
たぶんこれで行けると思います。

@errmail = ('yahoo.com','yahoo.ck');  #ここで禁止メアドを指定

sub decode {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else { $buffer = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;


			foreach ( @errmail )	{
				if ($value =~ /([^\x81-\xFF\s\"\'\(\)\<\>\\\`\[\{\]\}\|]+)\@([^\x81-\xFF\s\"\'\(\)\<\>\\\`\[\{\]\}\|]+)\.([^\x81-\xFF\s\"\'\(\)\<\>\\\`\[\{\]\}\|]+)/i) {	 

print <<"EOM";
<html>
<head>
<title>Error</title>
</head>
<body>
<center>このメールアドレスは使えません</center>
</body>
</html>
EOM
}
}

$value =~ s/</&lt;/g;											
$value =~ s/>/&gt;/g;


$value =~ s/\n|\r\n|\r/<br>/g;

$value =~ s/,/&#44;/g;
$buffer =~ tr/+/ /;
$buffer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert( *value, 'sjis' );
$FORM{$name} .= $value;
}
}

返信(回答)する

 


Web裏技