캡챠가 있어도 스팸 댓글이 올라오는 이유에 대해서...
캡챠가 있어도 지속적으로 스팸 댓글이 올라와서 그 이유를 몰랐는데
자동광고 프로그램 중에 그누보드의 write_update.php로 다이렉트로 댓글을 쓰는 것이 있다고 합니다.
write.php를 거치지 않기 때문에 단어 필터링이 걸리지 않는거죠.
확인 바랍니다.
자동광고 프로그램 중에 그누보드의 write_update.php로 다이렉트로 댓글을 쓰는 것이 있다고 합니다.
write.php를 거치지 않기 때문에 단어 필터링이 걸리지 않는거죠.
확인 바랍니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 6개
사람이 분석해놓은 분석데이타를 가지고 글쓰는 프로그램이지요
사실상 캡차가 막을수있는부분은 비전문적인 광고 댓글 정도라고 보시면 됩니다.
// 불법접근을 막도록 토큰생성
$token = _token();
set_session("captcha_token", $token);
위와 같이 캡차 토큰 세션을 생성하고,
<form> 밑에,
<input type="hidden" name="token" value="<?php echo $token ?>"> 을 추가하고요,
*** /bbs/write_update.php 상단에서,
그 세션값(captcha_token)과 POST 로 넘어온 값이 같은지를 비교 검증하는 함수가 필요합니다.
현재 검사하고 있는 chk_captcha() 함수는 단지 ($captcha_count > 5) 과 POST['captcha_key']만 확인하고 있으므로, 로봇인 경우, 바로 건너 뛸 수 있게 되지 않을까 싶네요.
------------------------------------------------------------
예를 들면, /bbs/register_form.php 에서
// 불법접근을 막도록 토큰생성
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
이렇게 토큰을 생성하여, ss_token 에 값을 할당해 놓았으나, 이 ss_token 세션값을 가지고 POST된 값과 같은지 검증하여 활용하는 루틴이 빠져 있습니다.
로그인 시에도 이러한 루틴이 포함되면 좋을 듯 싶네요. 물론, 캡챠 확인 루틴 포함해서요.