2017-10-11 5 views
1

봇에서 제 폼을 보호해야하는 아주 간단한 예제 코드를 만들었습니다. 그러나 개발자 도구를 통해 입력을 숨기고 입력 값에 텍스트를 넣을 때에도 양식이 전송됩니다. 허니팟 보호가 작동하지 않습니다.

내가 사용하는 코드입니다 :

(index.html 파일)

<li> 
    <input type="text" name="bot" value="" class="hidden" /> 
</li> 

(mail.php 파일)

if (isset($_POST['bot']) && !empty($_POST['bot'])) { 
    die(); 
} 

코드의 이상이 필요하다 (경우 , 언제든지 알려주십시오.)

감사합니다.

+0

이 봇 입력이 양식을 보호하는 방법을 설명해 주시겠습니까? –

+2

봇은 특히 봇 메이커가 특별히 사이트를 타겟팅하는 경우이 물건을 알아내는 데 아주 능숙합니다. https://www.google.com/recaptcha/intro/와 같은 적절한 보안 문자를 사용하십시오. – ceejayoz

+1

@MehdiBounya 일부 로봇은 양식의 모든 필드를 채우려고합니다. 인간이 보지 못하는 숨겨진 필드를 갖는 것은 일반적인 접근 방법이었습니다. 그것은 잠시 동안 작동했지만, 요즘 대부분의 로봇은 CSS/JS를 평가하고 숨겨진 필드를 무시할 수 있습니다. – ceejayoz

답변

3

TL; DR

하지 않습니다.

때문에 :

코드에 관계없이 양식, 로봇 인간을 제출 사람의 숨겨진 필드를 보낸다 무엇.

예를 들어, 세션 생성 토큰으로 채워진 javascript onPageLoad로 HUMAN 입력을 만든 경우 접근 방법이 더 좋을 것입니다.

하지만 여전히 봇과 관련하여 도움이되지는 않습니다. 그들은 바보가되지 않습니다.

// my silly dumb anti-bot protection 
$(document).ready(function(){ 
    $(form).append('<input type=hidden name=probably_human value='+<?php echo $_SESSION['token'] ?>+'>'); 
}) 

<?php 
if (!isset($_POST['probably_human']){ 
    die; 
} 
if ($_POST['probably_human'] != $_SESSION['token']){ 
    die; 
} 

그리고 심지어 여기에, 나는 selenium, phantomjs, nightmarejs, electron을-부팅 및 허니팟 밖으로 쓰레기를 자동화 할 수 있습니다.


recaptcha을 사용해 보셨습니까?

전문가가 제공 한 솔루션, 스팸 방지 전문가입니다. 확신을 얻기 위해 돈을 받고있는 사람들은 로봇과 인간을 구별하는 방법을 알고 있습니다.

관련 문제