복붙노트

captcha를 사용하지 않고 댓글 스팸 차단 [닫힘]

PHP

captcha를 사용하지 않고 댓글 스팸 차단 [닫힘]

내 의견에 스팸을 차단하는 비 captcha 방법은 무엇입니까?

해결법

  1. ==============================

    1.내 경험에 의하면 현재 가장 효과적인 방법은 허니팟 입력 필드입니다.이 필드는 CSS를 통해 사용자에게 보이지 않게 설정됩니다 (예 : 숨김, 숨김, 0 픽셀 크기 설정 및 브라우저 외부의 절대 위치 지정). 어쨌든 그들이 가득 차 있다면 당신은 그것이 스팸봇이라고 생각할 수 있습니다.

    내 경험에 의하면 현재 가장 효과적인 방법은 허니팟 입력 필드입니다.이 필드는 CSS를 통해 사용자에게 보이지 않게 설정됩니다 (예 : 숨김, 숨김, 0 픽셀 크기 설정 및 브라우저 외부의 절대 위치 지정). 어쨌든 그들이 가득 차 있다면 당신은 그것이 스팸봇이라고 생각할 수 있습니다.

    이 블로그는 지금까지 100 % 성공한 나 자신을 시도한 다소 복잡한 방법을 설명합니다. 그러나 해시 필드 이름으로 모든 항목을 건너 뛰고 간단한 허니팟 필드를 추가하여 동일한 결과를 얻을 수 있다고 생각합니다.

  2. ==============================

    2.1) 양식에 세션 관련 정보 추가 예 :

    1) 양식에 세션 관련 정보 추가 예 :

    <input type="hidden" name="sh" value="<?php echo dechex(crc32(session_id())); ?>" />
    

    다시 게시 할 때 세션이 유효한지 여부를 확인하십시오.

    2) Javascript 전용. 제출시 자바 스크립트 삽입을 사용하십시오. 예:

    <input type="hidden" id="txtKey" name="key" value="" />
    <input type="submit" value="Go" onclick="document.getElementById('txtKey').value = '<?php echo dechex(crc32(session_id())) ?>';" />
    

    3) IP, 사용자 또는 세션 당 시간 제한. 이것은 아주 간단합니다.

    4) 필드 이름 무작위 화 :

    <?php
       $fieldkey = dechex(crc32(mt_rand().dechex(crc32(time()))));
       $_SESSION['fieldkey'] = $fieldkey;
    ?>
    <input type="text" name="name<?php echo $fieldkey; ?>" value="" />
    <input type="text" name="address<?php echo $fieldkey; ?>" value="" />   
    

    그런 다음 서버 측에서 확인할 수 있습니다.

  3. ==============================

    3.Akismet에는 API가 있습니다. 누군가가 그것을 위해 wrapper 클래스 (BSD liscense)를 작성했습니다 : http://cesars.users.phpclasses.org/browse/package/4401.html

    Akismet에는 API가 있습니다. 누군가가 그것을 위해 wrapper 클래스 (BSD liscense)를 작성했습니다 : http://cesars.users.phpclasses.org/browse/package/4401.html

    또한 베이지안 필터 클래스 (BSD Liscense도 있습니다) http://cesars.users.phpclasses.org/browse/package/4236.html

  4. ==============================

    4.이것은 captcha를 사용하지 않고 스팸 봇이나 무차별 공격을 차단하는 간단한 트릭입니다.

    이것은 captcha를 사용하지 않고 스팸 봇이나 무차별 공격을 차단하는 간단한 트릭입니다.

    이것을 귀하의 양식에 기입하십시오 :

    <input type="hidden" name="hash" value="<?php echo md5($secret_key.time()).','.time(); ?>" />
    

    이것을 PHP 코드에 넣으십시오.

    $human_typing_time = 5;/** page load (1s) + submit (1s) + typing time (3s) */
    $vars = explode(',', $_POST['hash']);
    if(md5($secret_key.$vars[1]) != $vars[0] || time() < $var[1] + $human_typing_time){
        //bot?
        exit();
    } 
    

    형태의 가중치에 따라 $ human_typing_time을 늘리거나 줄일 수 있습니다.

  5. ==============================

    5.Naive Bayesian 필터, 물론 :

    Naive Bayesian 필터, 물론 :

    http://blog.liip.ch/archive/2005/03/30/php-naive-bayesian-filter.html

  6. ==============================

    6.허니 폿 이론 (Honey Pot Theory)도 있습니다. 나는 최상의 결과를 위해 스팸 감소의 다른 형태와 허니 팟을 연결하는 것을 즐긴다.

    허니 폿 이론 (Honey Pot Theory)도 있습니다. 나는 최상의 결과를 위해 스팸 감소의 다른 형태와 허니 팟을 연결하는 것을 즐긴다.

    http://www.projecthoneypot.org/

  7. ==============================

    7.또 다른 일반적인 방법은 사용자에게 간단한 질문을하는 것입니다 ( "덥거나 추운가?" "2 플러스 7은 무엇입니까?"등). 약간의 captcha와 비슷하지만 화면 판독기를 사용하여 시력 장애가있는 사용자가 더 쉽게 이용할 수 있습니다. WordPress 블로그에는 매우 자주 표시되기 때문에이 작업을 수행하는 WordPress 플러그인이 있어야한다고 생각합니다.

    또 다른 일반적인 방법은 사용자에게 간단한 질문을하는 것입니다 ( "덥거나 추운가?" "2 플러스 7은 무엇입니까?"등). 약간의 captcha와 비슷하지만 화면 판독기를 사용하여 시력 장애가있는 사용자가 더 쉽게 이용할 수 있습니다. WordPress 블로그에는 매우 자주 표시되기 때문에이 작업을 수행하는 WordPress 플러그인이 있어야한다고 생각합니다.

  8. ==============================

    8.스팸! Akismet과 유사한 오픈 소스 필터입니다.

    스팸! Akismet과 유사한 오픈 소스 필터입니다.

    순진한 베이지안 필터링을 사용하고 보낸 사람의 IP 및 여러 분산 된 블랙리스트의 링크를 확인하고 HTTP 요청의 정확성을 검사하며 JS의 존재를 힌트로 사용합니다 (요구 사항은 아님).

  9. ==============================

    9.일반 CAPTCHA는 스팸 봇을 해결할 수 있습니다.

    일반 CAPTCHA는 스팸 봇을 해결할 수 있습니다.

    대신 "텍스트 캡쳐"를 고려하십시오 : "1 + 1은 무엇입니까?"와 같은 논리 또는 공통 지식 질문. 또는 "일반 커스터드의 흰 말은 어떤 색입니까?" 질문은 정적 일 수도 있습니다 (모든 시도에 대해 동일한 질문).

    (http://matthewhutchinson.net/2010/4/21/actsastextcaptcha에서 가져옴)

    Jeff Atwood는 자신의 블로그에서 이와 같은 유효성 검사를 사용한다고 생각합니다. (틀 렸으면 고쳐줘)

    일부 자료 :

  10. ==============================

    10.당신은 Akismet 같은 제 3자를 사용하여보고 시도 할 수 있습니다. API 키는 개인적인 용도로 무료입니다. 또한, Zend Framework에는이를위한 패키지가 있습니다.

    당신은 Akismet 같은 제 3자를 사용하여보고 시도 할 수 있습니다. API 키는 개인적인 용도로 무료입니다. 또한, Zend Framework에는이를위한 패키지가 있습니다.

  11. ==============================

    11.대부분의 로봇은 단순히 전체 양식을 작성하여 보내드립니다. 간단한 트릭은 일반적으로 javascript를 사용하여 숨기는 일반 필드를 만드는 것입니다. 서버 측에서이 필드가 채워 졌는지 확인하십시오. 그렇다면 스팸입니다.

    대부분의 로봇은 단순히 전체 양식을 작성하여 보내드립니다. 간단한 트릭은 일반적으로 javascript를 사용하여 숨기는 일반 필드를 만드는 것입니다. 서버 측에서이 필드가 채워 졌는지 확인하십시오. 그렇다면 스팸입니다.

  12. ==============================

    12.많은 사람들이 이미 제안했듯이 허니 팟 입력 필드를 사용합니다. 그러나 당신이해야 할 다른 두 가지가 있습니다. 먼저, 입력 필드가 honey pot 인 이름 / id를 임의로 지정합니다. 유용한 필드의 상태를 세션에 저장합니다 (CSRF 공격에 사용되는 양식 토큰뿐만 아니라). 예를 들어, 이름, 이메일, 메시지를 가져올 필드가 있습니다. 귀하의 양식에 토큰 "token",이 양식의 이름 인 "jzefkl46", 이메일의 경우 "ofdizhae", 메시지의 경우 "45sd4s2", 허니 포트의 경우 "fgdfg5qsd4"가 있습니다. 사용자 세션에서 다음과 같은 것을 사용할 수 있습니다.

    많은 사람들이 이미 제안했듯이 허니 팟 입력 필드를 사용합니다. 그러나 당신이해야 할 다른 두 가지가 있습니다. 먼저, 입력 필드가 honey pot 인 이름 / id를 임의로 지정합니다. 유용한 필드의 상태를 세션에 저장합니다 (CSRF 공격에 사용되는 양식 토큰뿐만 아니라). 예를 들어, 이름, 이메일, 메시지를 가져올 필드가 있습니다. 귀하의 양식에 토큰 "token",이 양식의 이름 인 "jzefkl46", 이메일의 경우 "ofdizhae", 메시지의 경우 "45sd4s2", 허니 포트의 경우 "fgdfg5qsd4"가 있습니다. 사용자 세션에서 다음과 같은 것을 사용할 수 있습니다.

    array("forms" => array("your-token-value" => array("jzefkl46" => "name",
                                                       "ofdizhae" => "email",
                                                       "45sd4s2" => "message",
                                                       "fgdfg5qsd4" => honey"));

    양식 데이터를 받으면 다시 연결해야합니다.

    두 번째로, 로봇이 당신의 허니 팟 필드 (25 % 확률)를 피할 수있는 기회가 많으므로 냄비의 수를 늘리십시오. 10 개 또는 20 개를 사용하면 html에 너무 많은 오버 헤드가 발생하지 않고 봇에 어려움이 추가됩니다.

  13. ==============================

    13.링크를 허용하지 않습니다. 링크가 없으면 스팸은 쓸모가 없습니다.

    링크를 허용하지 않습니다. 링크가 없으면 스팸은 쓸모가 없습니다.

    [편집] 중간 방법으로, 오직 "좋은"사이트 (일반적으로 자신의 사이트)에 대한 링크를 허용합니다. 소수의 사용자 만 있으므로 사용자의 요청에 따라 추가하거나 링크를 확인할 때까지 댓글을 달 수 있습니다. 그것이 좋으면 추가하십시오.

    잠시 후이 기능을 해제하고 링크가있는 주석을 자동으로 거부하고 사용자가 불만을 제기 할 때까지 기다릴 수 있습니다.

  14. ==============================

    14.다음과 같은 간단한 수학적 질문을 통해 내 웹 사이트에서 스팸의 약 99 %를 줄였습니다.

    다음과 같은 간단한 수학적 질문을 통해 내 웹 사이트에서 스팸의 약 99 %를 줄였습니다.

    2 + 4 [TextBox] 란 무엇입니까?

    사용자가 "6"이라고 대답하면 질문 / 의견을 제출할 수 있습니다.

    나를위한 작품 및 비슷한 솔루션 제프 앳 우드 코딩 호러에서 작동합니다!

  15. ==============================

    15.내 블로그에는 일종의 타협 captcha가 있습니다. 게시물에 링크가 포함되어있는 경우에만 captcha를 사용합니다. 또한 허니팟 입력 필드를 사용합니다. 지금까지 거의 100 % 효과적이었습니다. 때때로 링크가없는 모든 양식에 뭔가를 제출하는 스패머가있을 것입니다 (일반적으로 "좋은 사이트!"와 같은 것). 나는이 사람들이 자신이 누구인지를 알기 위해 전자 메일로 보낼 것이라고 생각한다고 가정 할 수 있습니다 (내가 보는 전자 메일 주소 만 사용).

    내 블로그에는 일종의 타협 captcha가 있습니다. 게시물에 링크가 포함되어있는 경우에만 captcha를 사용합니다. 또한 허니팟 입력 필드를 사용합니다. 지금까지 거의 100 % 효과적이었습니다. 때때로 링크가없는 모든 양식에 뭔가를 제출하는 스패머가있을 것입니다 (일반적으로 "좋은 사이트!"와 같은 것). 나는이 사람들이 자신이 누구인지를 알기 위해 전자 메일로 보낼 것이라고 생각한다고 가정 할 수 있습니다 (내가 보는 전자 메일 주소 만 사용).

  16. ==============================

    16.벌꿀 포트 필드를 사용하는 것과 함께 우리는 자동으로 IP를 금지 할 수 있습니다 (동적 IP에서는 작동하지 않음). 특히 봇이 다시 게시 한 링크는 금지됩니다.

    벌꿀 포트 필드를 사용하는 것과 함께 우리는 자동으로 IP를 금지 할 수 있습니다 (동적 IP에서는 작동하지 않음). 특히 봇이 다시 게시 한 링크는 금지됩니다.

  17. ==============================

    17.Akismet은 좋은 대안이며, 스팸에 대한 게시물을 확인하고 매우 효율적으로 작동합니다. librabry를로드하면됩니다. http://akismet.com/development/

    Akismet은 좋은 대안이며, 스팸에 대한 게시물을 확인하고 매우 효율적으로 작동합니다. librabry를로드하면됩니다. http://akismet.com/development/

  18. ==============================

    18.checkout 예제 및 아이디어를위한 wp 스팸 방지 플러그인

    checkout 예제 및 아이디어를위한 wp 스팸 방지 플러그인

    captcha를 사용하지 않고 많은 훌륭한 안티 스팸이 있습니다.

    일부 권장 사항 : hashcash, nospamnx, typepad antispam. 이 모든 것들은 스팸을 차단하는 여러 가지 방법을 사용하며 모두 사용합니다. hashcash + nospamnx는 거의 모든 스팸봇을 차단합니다. typepad antispam은 대부분의 사람이 입력 한 스팸을 차단합니다.

    이것들은 또한 좋은 것들입니다 : spambam, wp-spamfree, anti-captcha, 나쁜 행동, httpbl 등

    또한 자신의 사이트 (check referer)에서 오지 않는 모든 bot 직접 POST를 차단하는 간단한 .htaccess를 사용하십시오.

    또는 간단히 댓글 시스템을 disqus에 외주 처리하고 단단히 잠자십시오.

  19. from https://stackoverflow.com/questions/1577918/blocking-comment-spam-without-using-captcha by cc-by-sa and MIT license