2009-08-28 4 views
0

내 웹 사이트에서 양식에 대한 기초적인 "인간 테스트"를합니다.PHP로 기본적인 인간의 테스트를 구축

나는 현재 날짜 (분, 초가 아님)를 가져 와서 REMOTE_ADDR 사용자와 결합한 다음 문자열 (아마도 md5를 사용합니까?)을 생성 한 다음이를 6 자로 제한하려고합니다.

이 코드는 사용자에게 제출되며, 제출자가 확인을하고 양식 처리를 허용하면 특정 텍스트 상자에 복사하도록 지시됩니다.

이 작업을 수행하는 더 쉬운 방법이 있는지 잘 모릅니다. 그러나 이것은 저에게 효과적이며 빠른 수정이 될 것이라고 생각합니다. 어떤 제안?

+2

예. http://recaptcha.net/ –

답변

5

나는이 작업을 수행 할 수있는 쉬운 방법 가 있는지 잘 모릅니다,하지만 난 나를 위해 작동과 빠른 수정 될 것이라고 생각 무언가이다. 어떤 제안?

빠른 수정이 필요한 경우 더 간단한 방법을 시도해보십시오. 나는 악명 효과적인 튜링 테스트와 함께 매우 인기있는 웹 사이트를 가지고 :

Check this box if you're a human: [ ]

이 작은 수정은 내 스팸 메일은 1 개 또는 2 몇 개월마다 메시지 매일의 1000의 10 초에서 카운트 다운 가져왔다.

What's the sound a cat makes? (Rhymes with 'cow') [________________]

더 이상 그 이후 문제가 없었 : 봇가 wised하면 물론, 나는 훨씬 더 어렵 내 테스트했습니다. YMMV.

+0

Nitpick : 미국/영국에서만 작동합니다. 다른 문화는 동물마다 다른 소리를 특징 짓습니다. 예 : 스칸디나비아 인은 '야옹'이 아닌 'mjao'를 사용하는 경향이 있습니다. – Rushyo

2

모든 소스에서 MD5를 생성합니다 (완전히 무작위로 작성). 그것을 화면에 놓고 세션에 저장하십시오. 확인해 봐. Voila.

captcha 라이브러리를 사용하면 다음과 같습니다. 그래도 훨씬 더 안전합니다. 아주 좋은 것들을 많이 설치하고 매우 쉽게 설치할 수 있습니다.

+0

+1 captcha를 사용하십시오. 일반적으로 웹상의 표준이되는 좋은 이유가 있습니다. –

+0

Captcha는 bot에 의해 반드시 파괴 될 수있는 것이 아니며 실제 인간 사용자에게는 지옥입니다 ... 나는 captcha를 읽을 수없는 횟수를 세지 않습니다. 그리고 생성 할 버튼이 없다면 다른 하나는이 하나가 쓰레기이기 때문에 "나는 당신이 그 결과를 상상하게한다. ... –

+0

사용자 측에서는 Captcha도 싫어한다. 내가 대문자를 사용해야하거나 읽을 수 없다고 생각하면 50 % 이상의 질문을한다. 줄리엣이 제안한 줄을 따라 간단히 생각해보십시오. 사용자에게 올바른 이미지가있는 이미지를 사용하는 몇 개의 제출 버튼을 추가 할 수 있습니다. – Mottie

5

가장 간단한 솔루션은 허니팟을 사용하는 것입니다. 기본적으로 Name 또는 그 종류의 숨겨진 필드를 만든 다음 제출시 해당 필드에 데이터가 있는지 확인하십시오. 만약 그렇다면, 당신은 그것이 봇이라는 것을 압니다! 그것이 숨겨져 있기 때문에, 인간은 그 필드를 채울 수 없을 것이고, 봇만이 할 것입니다!

+0

+1은 간단하고 사용자가 모든 농구를 뛰어 넘지 않도록합니다. – nickf

+0

간단합니다. 타겟 또는 세미 인텔리전트 봇에 대한 제로 보호. – Rushyo

+0

우리는 작업장에서이를 구현하여 모든 스팸 양식 제출을 효과적으로 제거했습니다. 특별히 목표를 정한 경우에는 아무 일도하지 않지만 여러 형태로 수십 개의 사이트를 구현 한 후 18 개월 (우리는 맞춤 디자인 및 호스팅을 수행함), 아무도 귀찮은 사람이 아닙니다. –