웹솔루션개발 22년 노하우! 해피CGI의 모든것

[해피CGI][cgimall] 방명록 도배방지 - 세팔방명록 본문

웹프로그램밍 자료실/알짜자료 골드팁

[해피CGI][cgimall] 방명록 도배방지 - 세팔방명록

해피CGI윤실장 2017. 1. 25. 09:41
오즈마녀 입니다...

지긋지긋하게 올라오는 광고·도배글은 게시판을 가리지 않습니다. 황야의 무법자 같습니다.

이번에는 방명록으로 많이 쓰는 세팔방명록 3.0을 기준으로 도배글을 막아보겠습니다.

이런 광고물의 대부분이 게시판 자동등록기를 사용해서 한번에 수만건씩 쏘아올리고 있습니다.

세팔방명록 3.0에는 이렇게 도배되는 게시물을 막는 기능이 포함되지 않은 것 같습니다.

도배·광고글 막을 수 있는 방법은 여러가지가 있겠으나... 예전에 사용하던 쿠키를 사용해서 막는 방법을 여기서도 사용하겠습니다.

게시판별로 적용되는 도배·광고글을 막을 수 있는 방법들을 계속 모으려고 합니다.
좋은 방법이나 오즈의 글 내용 중 오류가 발견되면 메일 주십시요.

=============== 쿠키체크 방법(세팔방명록 3.0) =====================
● spguest.cgi <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

sub display{
my(@page_list, $start);
&get_date;
#도배체크
print "Set-Cookie: US=\"ad_no\"; expires=Sunday, 31-Dec-$nyear 12:12:12 GMT;\r\n";
#도배체크(한줄로 씀)
if((-e "$main_dir/idx/$page.cgi") && ($FORM{'category'} eq "")){

sub write{
my(@idx, @temp, @gul, $num, $num_data, $pass, $name, $mail, $home, $html, $autolink, $br_val, $subject, $comments, $open_val, $mod_date, $ans, $wdate);
if(($FORM{'name'} eq "") || ($FORM{'subject'} eq "") || ($FORM{'comments'} eq "")){
&err("blank");
}
&w_deny_user_ck;
unless(($FORM{'mail'} eq "") || ($FORM{'mail'} =~ /.*\@.*\..*/)){
&err("mail");
}
$ans = $FORM{'ans'};
&read_cookie;
#도배체크
if($ad_no eq "") { &err("ad_no_write"); }
#도배체크
if(($FORM{'reply'} ne "ok") && ($FORM{'modify'} ne "ok")){

sub read_cookie{
if($ENV{'HTTP_COOKIE'}) {
my @cookies = split(/; /,$ENV{'HTTP_COOKIE'});
foreach(@cookies) {
($name,$value) = split(/=/,$_);
$COOKIE{$name} = $value;
}
if($COOKIE{'US'}) { $ad_no = $COOKIE{'US'} };
#도배체크
}
}

sub err{
my($result, $msg);
$result = $_[0];
if($result eq "id"){
$msg = "spguest.cgi?id=test 같은 형식으로 만들어 주세요... ^^";
}
elsif($result eq "blank"){
$msg = "이름, 제목, 내용은 반드시 채워야 합니다.";
}
elsif($result eq "mail"){
$msg = "이메일 주소가 잘못되었네요... ^^";
}
elsif($result eq "admin"){
$msg = "관리자 비밀번호가 잘못되었습니다.";
}
elsif($result eq "same_pwd"){
$msg = "설정하신 비밀번호가 일치하지 않습니다.";
}
elsif($result eq "not_owner"){
$msg = "비빌번호가 틀립니다. 다시한번 확인해 보세요.";
}
elsif($result eq "keyword"){
$msg = "검색 키워드를 입력해 주세요.";
}
elsif($result eq "ad_no_write"){
#도배체크
$msg = "게시판 자동등록기 사용하지 않나요?";
#도배체크
}
#도배체크
else{
$msg = "예기치 못한 오류입니다. ";
}
&head;

spguest.cgi 내용 중 파란글자 부분을 해당위치에 추가하시면 됩니다.
추가 내용 중 ad_no 외 ad_no_write 두 단어는 짝을 맞춰 다른 변수명으로 바꾸셔도 됩니다.
수정 작업 전에 원본파일을 하나 보관해뒀다가, 수정시 문제가 생기면 원본파일을 사용하시기 바랍니다.

자료출처 : http://mrs-oz.com/garden/index_cgi.html

 

홈페이지바로가기 

Comments