게시판 자동 등록 프로그램 메카니즘이 어떻게 되죠.

morning의 이미지

아마 여기에 오시는 분들 중에 이 프로그램을 짜신 분이 있겠죠.
이에 대항하는 프로그램을 짜신 분도 있을 것이구요.

일단 저는 자동등록을 막고자합니다.
그럴려면 그 등록 프로그램의 메카니즘이 궁금하네요.

제가 단순하게 생각해 보기로는
로봇프로그램이 써핑하면서 URL자료를 읽다가
글쓰기와 유사한 폼네임(content, name, body, board, write...)이 발견되면
글을 올릴 수 있는 페이지라고 인식하고
추출된 폼네임에 연관성을 찾아 자신이 자기고 있는 내용을 대입해서 전달하고
submit을 하지 않나 합니다.
어디까지나 제 추정입니다.

좀 전문가들의 의견을 듣고 싶네요.
덤으로 이를 막는 방법에 대해서도 궁금하구요.

ihavnoid의 이미지

URL을 바꾸면 한동안 광고글이 안 올라오더군요...

(ex: http://some.site.com/board/list.php -> http://some.site.com/board_nospam/list.php)
즉, 어느정도는 수동으로 등록시켜줘야 하는 듯 합니다....

그리고 그러고 나서는 자동등록을 해 주고요...

즉, URL을 랜덤으로 자동변경하는 스크립트를 만드는 것만 해도 많은 도움이 될 듯 합니다.

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

죠커의 이미지

그런 경우에는 직관적이지 못한 이름을 쓰는 것도 좋을 것 같습니다.

"name" "mail"같은 것은 피하는 것이 좋겠지요.

number3의 이미지

자동등록은 아마 막기가 힘들 거 같습니다.

HTML 페이지들이 모두 외부러 드러나기 때문에
자동등록을 막는 것은 사실상 불가능합니다.

자동등록은 사실상 HTML 폼에 대해서 수동으로 매핑을 하는 방법을 이용합니다. 가령 이런 식이지요.
http://www.host.com 이란 곳에 html form 이 있다면,
name, email, 기타 폼 필드가 있다면,
자동 등록기에 있는 필드로 매핑을 합니다. 그래서 자동이 아니라 수동인 것이죠. 분석을 수동, 등록하여 폼에 쓰는 것은 자동..

그리고 돌리면 되겠지요..

이걸 막기 위해서 여러가지 옵션을 걸어서 막는 노력을 해봐도 금세 찾아올 것입니다. 대부분 refer 를 체크해서 막는 것이 기본적인 듯 합니다.

- 더 자세한 것은 악용될 여지가 있어 그만 적습니다. 지송.

sangheon의 이미지

number3 wrote:
자동등록은 아마 막기가 힘들 거 같습니다.

HTML 페이지들이 모두 외부러 드러나기 때문에
자동등록을 막는 것은 사실상 불가능합니다.

자동등록은 사실상 HTML 폼에 대해서 수동으로 매핑을 하는 방법을 이용합니다. 가령 이런 식이지요.
http://www.host.com 이란 곳에 html form 이 있다면,
name, email, 기타 폼 필드가 있다면,
자동 등록기에 있는 필드로 매핑을 합니다. 그래서 자동이 아니라 수동인 것이죠. 분석을 수동, 등록하여 폼에 쓰는 것은 자동..

그리고 돌리면 되겠지요..

이걸 막기 위해서 여러가지 옵션을 걸어서 막는 노력을 해봐도 금세 찾아올 것입니다. 대부분 refer 를 체크해서 막는 것이 기본적인 듯 합니다.

- 더 자세한 것은 악용될 여지가 있어 그만 적습니다. 지송.

프로그램이라면 REFER를 위조하는 것도 가능할텐데요.

뭔가 더 확실한 방법이 없을까요?

--

Minimalist Programmer

zienie의 이미지

게시판 자동 등록기라......헐~~~~
PHPSCHOOL 에서 한동안 토론이 벌어지는걸 봤었는데..

역시 결론은 창과 방패이더군요...

웹 이란 기술이 거의 전적으로 클라이언트가 보내주는 정보를
서버가 이용하는 방식이므로 WWW 프로토콜을 조금만 공부하고
만든 자동 등록기라면 웬만한 방법으로는 막기 힘들더군요.

제가 생각하기로도 가장 좋은 방법은....
위의 님이 쓰신것처럼 일정 기간마다 게시판의 URL을 바꾸는 방법이
그나마 나은듯 하더군요. ^^

혹시 자동 등록기를 만들어 보신분이 계시면 답변을 달아주시면 재미 있을듯
합니다. :wink:

##########################################################
넘어지는건 아직 괜찮다.
하지만 넘어질때마다 무언가를 주워서 일어나자.

number3의 이미지

bookworm wrote:

프로그램이라면 REFER를 위조하는 것도 가능할텐데요.

뭔가 더 확실한 방법이 없을까요?

REFER 도 프로그램적으로 위조가 가능하죠..
더더욱 HTTP 프로토콜이 개방형 구조(맞는 표현인지)에다가
connectionless 라는 통신 방법을 사용하기 때문에
제한을 걸기가 매우 힘든 것이 사실이죠.

암튼 힘든 것이 사실입니다.
중요한 것은 그렇게 올라온 글을 즉각 즉각 제거하고
보이지 않게 처리하면, 많은 경우에 더 이상 올라오지 않는 듯 하더군요.
효과가 없으니.. ~~

roid1911의 이미지

결국 끊임없는 창과 방패의 싸움일 것 같네요.
누가 더 부지런한가의 싸움일듯...

Renn의 이미지

제가 이전에 생각했던 방식은, 글 쓰기 폼을 통해서만 글을 포스팅 할 수 있도록 제한하는 것, 즉 글 쓰기 폼에 특정 정보를 남겨서 기록 시 이 정보를 판단하여 거부할 수 있도록 하는 것입니다.

예를 들자면 글쓰기 폼을 웹브라우저로 보낼 때 역시 hidden 값으로 어떤 value를 설정해 주는 것이지요. 이 value는 뭔가 규칙이 있는 수치여야 하며 외부 사용자는 규칙을 모르도록 해야겠죠. 다음 두 가지 간단한 생각이 있는데...

1. 난수 알고리즘을 어떻게 섞어서 무작위 값처럼 보이는 순서를 가진 값을 폼에 hidden으로 남긴다. 기록시에는 이 순서에 판단하여 어긋난다면 스팸류의 글로 간주하는 것이다.

2. 글쓰기 폼 출력부에서 난수를 발생해서 역시 그것을 hidden으로 기록한다. 그리고 기록시에 대조해 본다.

사실 아직 구현해보지는 않았습니다만, 자동 등록 프로그램에서 웹서버로 바로 post를 날려버린다면 이것 만으로도 막을 수 있을 것 같습니다.

ps) 모군은 아예 PKI 기반으로 글을 쓸 때 키를 만들어서 어떻게 처리하는것 같기도 하더군요. =.=

morning의 이미지

위에 올리신 글들을 참조해서 결국 2가지 방식을 혼합하여 작성했습니다.

첫번째는 name 값을 알기 어렵운 값으로 바꾸어 버렸습니다.
기존에 사용하던 email, title, name, passwd 등의 값을
사회주의 만화(^^;) 스머프에 나오는 인물로 바꾸어 버렸습니다.
이렇게 작업하는데는 5분도 안걸더군요.

두번째는 비규칙적인 값을 입력 받는 필드를 만들었습니다.
매번 값이 변하는 타임스탬프 값을 근간으로 하여 4자리의 정수를
만들어 일단 그 값을 히던으로 하나 넘기고, 다시 여기에 약간의 변경을
가하여 사용자에게 '스팸 방지 입력란'에 입력하라고 메세지 보여줍니다.
글을 다 입력하고 나면 받은 쪽에서 사용자가 입력한 값을 원래대로
복구한 값이랑 히던으로 넘어온 값을 비교해서 스팸 여부를 판별합니다.
이것도 작업하는데 몇분 걸리지 않더군요.

어때요. 이 정도면 성의 없는(?) 스팸들을 막을 수 있을까요.
광고가 될까 작성된 URL은 못 알려 드리겠군요. 별 볼것도 없습니다.
테스트하고 싶은 분은 메일을 주시면 알려 드리겠습니다.
답변 주신분들 감사합니다. 이만,

조르바와 함께 춤을....

ironiris의 이미지

안녕하세요~
광고를 자주올리는 ip 에 대해서 쓰기 금지시키도록 하면 될것 같습니다.
게시판에 광고올리는 사람들 ip 공유하는 것도 재미있겠죠?
행복하세요~

dotri의 이미지

귀찮긴 하지만 방법이 있긴 있습니다.
어떤 방법인가 하면.. form 을 출력해주는 파일을 html 이 아니라 cgi 로 만듭니다.
그리고 form에서 여러개의 인증코드중 하나를 랜덤하게 보여주고 그것을 똑같이 따라치라고 요구하는겁니다.
이때 보여주는 인증코드는 영문이나 숫자같은거면 됩니다.
이것을 가장 잘 보여주는 페이지가 있는데.. http://www.yahoo.com 에서 사용자 등록을 해보시면
개인정보 같은거 다 입력한 뒤에 제일 마지막에 글자가 써져 있는 이미지를 보여주면서
그 글자를 똑같이 따라쓰라고 요구합니다.

이때 보여주는 이미지는 이미지의 제목과 이미지에 포함된 인증코드가 아무런 상관관계도 없도록 해야겠죠?
16352 라는 인증코드를 담은 이미지 파일의 이름이 16352.gif 면 안된다는겁니다.

죠커의 이미지

어차피 로그인이 되어있는 것을 지나 온다면 게시판의 구멍이거나 수작업으로 가입을 하는 것일것 같습니다.

단시간내에 많은 글을 퍼뜨리는 광고 로봇을 가입선청하고 로그인해서 글적도록 만든 경우는 별로 못본것 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.