2014-11-11 5 views
0

숨겨진 필드 방법을 사용하는 방법에 대해 생각해 보았습니다. 그러나 많은 봇이 단순히 숨겨진 속성을 찾는 것으로 파악할 수 있습니다. 나는 단지 그것이 필요로하는 것보다 오랫동안 폼을 만드는 또 다른 필드 나 섹션을 갖고 싶지 않습니다.Captcha를 사용하는 것 외에 사이트에서 양식을 작성하는 봇을 필터링하는 가장 좋은 방법은 무엇입니까?

+1

시간 제한을 설정할 수 있습니다. 따라서 사용자는 데이터를 보내기 전에 x 초 동안 페이지에 있었어야합니다 (서버에서 확인해야 함). 그 다음에 자바 스크립트로 숨겨진 양식 필드를 추가하고 거기에 있는지 확인하십시오. – furrie

+1

Facebook 또는 Google 계정을 사용하여 로그인하도록 사용자에게 요청할 수 있습니다. 또 다른 옵션은 "내가 인간이 아닌지 확인"이라는 숨겨진 체크 박스를 포함하는 것입니다. 따라서 모든 상자를 체크하도록 프로그램 된 봇은이 상자를 체크하고 제출이 통과하지 못하도록합니다. – AlvinJ

+0

이것들은 모두 아주 좋은 아이디어입니다, 나는 인간이 아니란 것을 나타내는 체크 박스가 가장 쉬운 것 같습니다. – kikix2125

답변

1

나는 성공적으로 지나치게 단순화 된 "captchas"를 보았습니다. 읽기 어려운 것보다는 what is 1 + 2을 묻습니다.

위에서 제안한대로 확인란은 대략 비교할 만합니다 ("나는 인간"또는 "나는 인간이 아닙니다"). 후자의 경우 <style> 헤더의 클래스에 정의 된대로 display:none의 스타일을 사용하여 스크립트를 감지하는 것이 더 어려워 져야하므로 렌더링을 인간에게 렌더링하지 않는 것이 좋습니다.

또 다른 간단한 트릭 (따라서 제한된 마일리지 포함)은 자바 스크립트가 필요할 것입니다. 이런 식으로 뭔가 대부분의 스팸 봇 방지해야합니다

<form id="form1" action="how-to-enable-js.html"> 
    ... 
</form> 
<script type="text/javascript"> 
    document.getElementById("form1").action="real_action.cgi"; 
</script> 

을 파일이 (경로를 제공 할 다른 나) 같은 디렉토리에 살고있는 것이다 "어떻게 -하려면 --js.html 사용"및 방법에 대한 방향에있을 것입니다 양식을 올바른 위치 ("real_action.cgi")로 이동할 수 있도록 JavaScript를 활성화하십시오.

실제 엔진으로 페이지를 렌더링하는 스팸봇은이 테스트를 무시할 수 있습니다.

세 가지 모두를 쉽게 수행 할 수 있습니다.