문제

I have a web form 는 사용자와 정보를 서버로 전송 및 저장된 데이터베이스에서.나는 걱정 로봇을 수도 있습니다 그냥 양식을 채우고 나는 끝까지 함께 데이터베이스의 전체 쓸모없는 기록이다.을 방지할 수 있는 방법에서 로봇을 채우에서 나의 양식?나는 생각하고 어쩌면 뭔가 다음과 같 유래의 로봇 탐지,어디로 생각하는 경우에 당신은 로봇,그것은 당신을 묻었는지 확인하려되지 않습니다.거기에 server-side API in Perl,Java 또는 PHP?

도움이 되었습니까?

해결책

몇 가지 해결책이 있습니다.

  1. 보안 문자를 사용하십시오. 그래서 용도 recaptcha 내가 아는 한.

  2. 형태에 추가 필드를 추가하고 CSS로 숨 깁니다 (표시 : 없음). 정상적인 사용자는이 필드를 보지 않으므로 채우지 않습니다. 이 필드가 비어있는 경우 제출물을 확인합니다. 그렇지 않다면, 당신은 모든 형태의 필드를 신중하게 작성한 로봇을 다루고 있습니다. 이 기술은 일반적으로 "허니팟"이라고합니다.

  3. JavaScript 타이머 기능을 추가하십시오. 페이지로드에서는 0에서 값을 시작한 다음 시간이 지남에 따라 증가합니다. 정상적인 사용자는 한동안 양식을 읽고 작성한 다음 제출합니다. 로봇은 그냥 수신하자마자 양식을 작성하고 제출합니다. 제출시 값이 0에서 많이 발생했는지 확인합니다. 그렇다면 실제 사용자 일 것입니다. 만약 당신이 몇 초 밖에 나오지 않으면 (또는 로봇이 JavaScript를 실행하지 않기 때문에 전혀 가치가 없다면) 로봇 일 것입니다. 그러나 이것은 "쓰기"작업을 수행하기 위해 사용자가 JavaScript를 켜야한다고 결정한 경우에만 작동합니다.

확실히 다른 기술이 있습니다. 그러나 이것들은 매우 간단하고 효과적입니다.

다른 팁

당신이 사용할 수있는 recaptcha (stackoverflow와 동일) - 그들은 가지고 있습니다 도서관 많은 프로그래밍 언어의 경우.

나는 항상 Honeypot Captcha를 선호했습니다.Phil Haack의 기사), 사용자에게 덜 침습적입니다.

Captcha 가지고 접근성 문제와 것이 궁극적으로 패배하여 소프트웨어 인식이다.

I recommand 의 독 이 짧은 기사 에 대해 로봇 트랩을 포함하는,숨겨진 분야,마태는 덩굴과 새로운 도시에서 이미 권장합니다.

어쨌든,당신은 여전히 모두 무료로 사용할 보안 문자 및 바트 함정이 있습니다.

CARTCHA는 훌륭합니다. 로봇 트래픽의 99%를 막을 수있는 다른 일은 사용자가 필드를 검증하는 것입니다.

내 사이트에서 우편 번호 및 전화 번호와 같은 필드의 텍스트를 확인합니다. 그것은 비 표적화 된 로봇 잘못된 정보를 모두 제거했습니다.

사용자가 양식을 채우는 2 단계 시스템을 만들 수 있지만 이메일에 응답하여 정해진 기간 (24 시간 내에 레코드를 활성화”해야합니다.

백엔드에서 모든 양식 제출물로 현재 테이블을 채우는 대신 시간 할당보다 오래된 행을 자동으로 삭제하는 임시 테이블에 넣을 수 있습니다. 심각한 봇 문제가 없다면, 특히 첫 번째 형태가 단지 몇 개의 필드라면 테이블이 크지 않을 것이라고 생각합니다.

이 접근법의 벤티 피트는 보안 문자 나 접근성 문제를 야기 할 수있는 다른 기술을 사용할 필요가 없다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top