이번에 제가 운영하는 서버의 모 게시판에 스팸들이 마구마구 들어오는 까닭에 -_-;; 어떻게 막을지 밤을 새면고 고민을 하고 있습니다.
python이라는 선배께서는 인증코드를 만들어서 비회원이 게시판에 글쓸때 인증코드를 넣지 않으면 스팸을 처리를 했더군요.(python이라는 분이 누군지도 모릅니다. 선배라는 것만 알지)
이 숫자를 입력하세요. (<?= date("z") + 3000 ?>)

$quizresult1 = date("z") + 3000;
$quizresult2 = date("z") + 2999;

if ( $quizresult != $quizresult1 && $quizresult != $quizresult2) {
?>
<script language="javascript">
alert("인증코드가 틀립니다.");
history.back();
</script>
<?
exit;
}

여기서 문제점이 있었습니다. 인증코드를 PHP에서 날짜,시간 format 함수인 date()를 써서 그런지 허점이 있더군요.

인증코드가 Text로 노출이 되어서 매크로 돌린 스팸이 그것을 알아차려서 Text를 입력해서 계속 스팸글들을 올릴수가 있습니다.
그리고 인증코드가 rand()함수가 아닌 date()함수를 써서 날짜가 그 날이면 계속 그날에만 지정된 인증코드만 생성됩니다. 같은 날짜에 각각 실행 시간이 달라도 다른 인증코드가 생성되지 않고 똑같은 인증코드가 생성되니 -_-;; 인증코드는 있으나 마나입니다.
(PHP에서 C언어의 rand() 함수가 있는지 레퍼런스를 찾아봐야겠군요)

서버에서 돌아가는 게시판 PHP 소스를 보니까 뜯어고쳐야할 것들이 많군요...ㅠㅠ
방학때라서 뜯어 고칠수 있지.. 학기중이였다면 안고쳤을 듯 합니다.

인증코드 소스부분이 뚫리게 작성되어 있으니 어떻게 고칠까 고민되군요.

GD를 이용해서 인증코드를 이미지로 만들어서 프로그래밍해야 하나? 먼산... 뜯어 고칠것이 한두곳이 아니네 -_-+

'컴퓨터 > Web' 카테고리의 다른 글

여태까지 이런 기능이 없었다니  (6) 2007.08.01
PHP 이메일 체크 함수  (2) 2007.01.22
효율적으로 PHP 코드 짜기  (5) 2007.01.15
스팸처리를 함  (6) 2007.01.10
홈페이지 디자인이 비슷하다~  (3) 2007.01.09
Buy me a coffeeBuy me a coffee

+ Recent posts