CINXE.COM

Antibot - the new Messiah of spam fighting | adamevertsson.se

<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8" /> <noscript><style>form.antibot * :not(.antibot-message) { display: none !important; }</style> </noscript><style>#block-ae2024-cheeseburgermenu {--cheese-aside-bg-color: rgba( 203, 188, 150, 1);--cheese-aside-text-color: rgba( 0, 0, 0, 1);--cheese-main-bg-color: rgba( 203, 188, 150, 1);--cheese-main-text-color: rgba( 0, 0, 0, 1);--cheese-trigger-color: rgba( 203, 188, 150, 1);--cheese-trigger-bg-color: rgba( 33, 33, 33, 1);--cheese-scrollbar-color: rgba( 180, 245, 253, 1);}</style> <style>@media all and (min-width: 480px) {#block-ae2024-cheeseburgermenutrigger{ display:none; }}</style> <meta name="Generator" content="Drupal 10 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" href="/core/misc/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="alternate" hreflang="sv" href="https://www.adamevertsson.se/sv/artiklar/antibot-spamfajtandets-nya-messias" /> <link rel="alternate" hreflang="en" href="https://www.adamevertsson.se/en/articles/antibot-new-messiah-spam-fighting" /> <link rel="canonical" href="https://www.adamevertsson.se/en/articles/antibot-new-messiah-spam-fighting" /> <link rel="shortlink" href="https://www.adamevertsson.se/en/node/68" /> <title>Antibot - the new Messiah of spam fighting | adamevertsson.se</title> <link rel="stylesheet" href="/themes/contrib/ae2023/css/simple-css/simple.css"> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/align.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/fieldgroup.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/container-inline.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/clearfix.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/details.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/hidden.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/item-list.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/js.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/nowrap.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/position-container.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/reset-appearance.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/resize.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/system-status-counter.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/system-status-report-counters.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/system-status-report-general-info.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/system/components/tablesort.module.css?sroby2" /> <link rel="stylesheet" media="all" href="/modules/contrib/antibot/css/antibot.css?sroby2" /> <link rel="stylesheet" media="all" href="/modules/contrib/cheeseburger_menu/css/cheeseburger_menu.css?sroby2" /> <link rel="stylesheet" media="all" href="/core/themes/stable9/css/core/assets/vendor/normalize-css/normalize.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/contrib/ae2023/css/components/node.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/action-links.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/breadcrumb.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/button.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/container-inline.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/custom.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/details.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/exposed-filters.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/field.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/form.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/icons.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/inline-form.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/item-list.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/link.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/links.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/menu.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/more-link.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/pager.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/tabledrag.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/tableselect.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/tablesort.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/tabs.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/textarea.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/ui-dialog.css?sroby2" /> <link rel="stylesheet" media="all" href="/themes/custom/ae2024/css/components/messages.css?sroby2" /> </head> <body class="path-node page-node-type-article"> <a href="#main-content" class="visually-hidden focusable skip-link"> Skip to main content </a> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div class="layout-container"> <header role="banner"> <div class="region region-header"> <div id="block-ae2024-site-branding" class="block block-system block-system-branding-block"> <a href="/en" rel="home" class="site-logo"> <img src="/themes/contrib/ae2023/images/logos/logo_white.svg" alt="Home" fetchpriority="high" /> </a> <div class="site-slogan">A blog that brings order to the creative chaos.</div> </div> <nav role="navigation" aria-labelledby="block-ae2024-mainmenu-menu" id="block-ae2024-mainmenu" class="block block-menu navigation menu--main-menu"> <h2 class="visually-hidden" id="block-ae2024-mainmenu-menu">Main menu</h2> <ul class="menu"> <li class="menu-item"> <a href="/en/tag/drupal" data-drupal-link-system-path="taxonomy/term/1">Drupal</a> </li> <li class="menu-item"> <a href="https://www.adamevertsson.se/sv" title="To the Swedish version of the site">Swedish</a> </li> <li class="menu-item"> <a href="/en/about-adam-evertsson" data-drupal-link-system-path="node/9">About Adam</a> </li> </ul> </nav> <div style="display: none;" class="block-cheeseburgermenu-container block-cheeseburgermenu-container--with-navigation block block-cheeseburger-menu" id="block-ae2024-cheeseburgermenu"> <div class="cheeseburger-menu__side-menu"> <div class="cheeseburger-menu__side-trigger" data-cheeseburger-close="true"><?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> <g id="Bounding_Boxes"> <path fill="none" d="M0,0h24v24H0V0z"/> </g> <g id="Rounded"> <path d="M18.3,5.71L18.3,5.71c-0.39-0.39-1.02-0.39-1.41,0L12,10.59L7.11,5.7c-0.39-0.39-1.02-0.39-1.41,0l0,0 c-0.39,0.39-0.39,1.02,0,1.41L10.59,12L5.7,16.89c-0.39,0.39-0.39,1.02,0,1.41h0c0.39,0.39,1.02,0.39,1.41,0L12,13.41l4.89,4.89 c0.39,0.39,1.02,0.39,1.41,0l0,0c0.39-0.39,0.39-1.02,0-1.41L13.41,12l4.89-4.89C18.68,6.73,18.68,6.09,18.3,5.71z"/> </g> </svg> </div> </div> <div class="cheeseburger-menu__main-navigation-area"> <div data-cheeseburger-id="menu-main" > <ul class="cheeseburger-menu__mainmenu"> <li class="menu-link cheeseburger-menu__item main__item"> <a class="cheeseburger-menu__item-label" href="/en/tag/drupal"> <span>Drupal</span> </a> </li> <li class="menu-link cheeseburger-menu__item main__item"> <a class="cheeseburger-menu__item-label" href="/en/about-adam-evertsson"> <span>Om Adam</span> </a> </li> <li class="menu-link cheeseburger-menu__item main__item"> <a class="cheeseburger-menu__item-label" href="https://www.adamevertsson.se/en"> <span>English</span> </a> </li> </ul> </div> </div> </div> <div id="block-ae2024-cheeseburgermenutrigger" class="block block-cheeseburger-menu block-cheeseburger-menu-trigger"> <div class="block-cheeseburgermenu__trigger-element" data-cheeseburger-id="block-ae2023-cheeseburgermenu"> <span></span> <span></span> <span></span> </div> </div> </div> </header> <div class="region region-highlighted"> <div data-drupal-messages-fallback class="hidden"></div> </div> <main role="main"> <a id="main-content" tabindex="-1"></a> <div class="layout-content"> <div class="region region-content"> <div id="block-ae2024-content" class="block block-system block-system-main-block"> <article data-history-node-id="68" class="node node--type-article node--promoted node--view-mode-full"> <div class="node__content"> <div class="field field--name-field-topimage field--type-entity-reference field--label-hidden field__item"> <img loading="lazy" src="/sites/default/files/styles/wide/public/2024-10/stop-spam.jpg.webp?itok=ygEltq2z" width="1090" height="770" alt="Warning signs with the word Spam written on them" class="image-style-wide" /> </div> <h1 class="page-title"> Antibot - the new Messiah of spam fighting </h1> <footer class="node__meta"> <div class="node__submitted"> Published by Adam Evertsson on <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-10-26T15:19:47+02:00" title="Saturday, October 26, 2024 - 15:19" class="datetime">Sat, 10/26/2024 - 15:19</time> </span> </div> </footer> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>In one way or another, I have developed, configured, and worked with Drupal for over 15 years. On almost every website I’ve had the privilege of working on, there have been various forms of forms—comment fields, contact forms, membership requests, and so on. And something that’s always been present is spam.</p><p>Regardless of the size of the site, bots eventually find the forms. I’ve moved from module to module trying to prevent forms from being overtaken by bots and their often offensive content, which 99.9% of the time includes a link to some obscure website, often on the darker parts of the web. But where there are spam bots, there are also services and modules to stop them. Over the years, I’ve moved from module to module as bots have become smarter and some modules have become outdated technologically.</p><p>About six months ago, I revamped my own site, <a href="https://www.adamevertsson.se/en/">AdamEvertsson.se</a>, and just recently realized that I’d forgotten to add a spam prevention module. How did I notice? I happened to see that I had over 3,500 comments spread across a very small number of posts—all 100% spam.</p><p>I quickly activated one of the classic modules I’ve used, but the spam posts continued to pour in by the dozens every day. Even though I have some go-to modules, I thought it might be interesting to see what’s new among spam prevention modules since it had been a while since I updated myself on the state of Drupal spam-blocking modules.</p><p>I quickly found the <a href="https://www.drupal.org/project/antibot">Antibot</a> module, a new discovery for me, and within just a couple of days of testing, it proved to be 100% effective against spam. Since it worked so incredibly well, I stopped searching. I haven’t received a single spam post since activating it earlier this week, and I now have a new favorite to add to my collection of modules when building Drupal sites.</p><p>Here are the modules I currently consider relevant for blocking spam posts:</p><h2>Antibot</h2><p>As mentioned, this is now my go-to for spam-fighting and will be my standard module for spam management for a good while—until it loses effectiveness and another module steps up.</p><p><a href="https://www.drupal.org/project/antibot">Visit the module’s project page on drupal.org</a>.</p><h2>Honeypot</h2><p>A classic module that monitors how quickly a form is filled in, with some other functions as well. It’s been a favorite for many years and keeps pace with Drupal’s development. I highly recommend it and still use it on my sites that run on Drupal 7, for instance.</p><p><a href="https://www.drupal.org/project/honeypot">Visit the module’s project page on drupal.org</a>.</p><h2>Google reCAPTCHA</h2><p>The classic box with prompts like "select all boxes with a moped" or "choose the images showing a bridge" is something we’ve all seen. It’s one of the internet’s most effective and widely used systems for ensuring “I am not a robot.” In Drupal alone, there are over 168,000 registered sites using this module and the reCAPTCHA system.</p><p><a href="https://www.drupal.org/project/recaptcha">Visit the module’s project page on drupal.org</a>.</p><h2>Anti-Spam by CleanTalk</h2><p>This is a new module I came across during my search but didn’t get around to testing since I found Antibot, which worked well. It has a bit more modest stats in terms of usage, with just over 3,000 sites using it, but it’s maintained and appears reliable.</p><p><a href="https://www.drupal.org/project/cleantalk">Visit the module’s project page on drupal.org</a>.</p><h2>SpamSpan</h2><p>While it doesn’t block spam directly, it prevents email addresses displayed on the site from being picked up by bots. It can and should be combined with one of the modules above.</p><p><a href="https://www.drupal.org/project/spamspan">Visit the module’s project page on drupal.org</a></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/en/tag/spam" hreflang="und">spam</a></div> <div class="field__item"><a href="/en/tag/modules" hreflang="und">modules</a></div> <div class="field__item"><a href="/en/tag/module" hreflang="und">module</a></div> <div class="field__item"><a href="/sv/taggar/antibot" hreflang="sv">antibot</a></div> <div class="field__item"><a href="/en/tag/honeypot" hreflang="und">honeypot</a></div> <div class="field__item"><a href="/sv/taggar/spamspan" hreflang="sv">spamspan</a></div> <div class="field__item"><a href="/en/tag/captcha" hreflang="und">captcha</a></div> </div> </div> <div id="prevnext"> <div id="prevnext-previous" class="prevnext-element previous"> <a href="/en/articles/12-funny-drupal-modules">Previous</a> </div> </div> <section class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <form class="comment-comment-form comment-form antibot" data-drupal-selector="comment-form" data-action="/en/comment/reply/node/68/comment" action="/antibot" method="post" id="comment-form" accept-charset="UTF-8"> <noscript> <div class="antibot-no-js antibot-message antibot-message-warning">You must have JavaScript enabled to use this form.</div> </noscript> <div class="field--type-text-long field--name-comment-body field--widget-text-textarea js-form-wrapper form-wrapper" data-drupal-selector="edit-comment-body-wrapper" id="edit-comment-body-wrapper"> <div class="js-text-format-wrapper text-format-wrapper js-form-item form-item"> <div class="js-form-item form-item js-form-type-textarea form-type-textarea js-form-item-comment-body-0-value form-item-comment-body-0-value"> <label for="edit-comment-body-0-value" class="js-form-required form-required">Comment</label> <div class="form-textarea-wrapper"> <textarea class="js-text-full text-full form-textarea required resize-vertical" data-media-embed-host-entity-langcode="sv" data-drupal-selector="edit-comment-body-0-value" id="edit-comment-body-0-value" name="comment_body[0][value]" rows="5" cols="60" placeholder="" required="required" aria-required="true"></textarea> </div> </div> <div class="js-filter-wrapper js-form-wrapper form-wrapper" data-drupal-selector="edit-comment-body-0-format" id="edit-comment-body-0-format"><div data-drupal-selector="edit-comment-body-0-format-help" id="edit-comment-body-0-format-help" class="js-form-wrapper form-wrapper"><a href="/en/filter/tips" target="_blank" data-drupal-selector="edit-comment-body-0-format-help-about" id="edit-comment-body-0-format-help-about">About text formats</a></div> <div class="js-filter-guidelines js-form-wrapper form-wrapper" data-drupal-selector="edit-comment-body-0-format-guidelines" id="edit-comment-body-0-format-guidelines"><div data-drupal-format-id="restricted_html" class="filter-guidelines-item filter-guidelines-restricted_html"> <h4 class="label">Restricted HTML</h4> <ul class="tips"> <li>Allowed HTML tags: &lt;a href hreflang&gt; &lt;em&gt; &lt;strong&gt; &lt;cite&gt; &lt;blockquote cite&gt; &lt;code&gt; &lt;ul type&gt; &lt;ol start type&gt; &lt;li&gt; &lt;dl&gt; &lt;dt&gt; &lt;dd&gt; &lt;h2 id&gt; &lt;h3 id&gt; &lt;h4 id&gt; &lt;h5 id&gt; &lt;h6 id&gt;</li> <li>Lines and paragraphs break automatically.</li> <li>Web page addresses and email addresses turn into links automatically.</li> </ul> </div> </div> </div> </div> </div> <input autocomplete="off" data-drupal-selector="form-qvoohsan2hy5puihtn4zqf3gxm8hluph-gj3zbhur08" type="hidden" name="form_build_id" value="form-qVooHSaN2hy5PuiHtn4zQF3gXM8HLUph_Gj3ZbHuR08" /> <input data-drupal-selector="edit-comment-comment-form" type="hidden" name="form_id" value="comment_comment_form" /> <input data-drupal-selector="edit-antibot-key" type="hidden" name="antibot_key" value="" /> <div class="js-form-item form-item js-form-type-textfield form-type-textfield js-form-item-name form-item-name"> <label for="edit-name">Your name</label> <input data-drupal-default-value="Anonymous" data-drupal-selector="edit-name" type="text" id="edit-name" name="name" value="" size="30" maxlength="60" class="form-text" /> </div> <div class="field--type-email field--name-field-e-mail field--widget-email-default js-form-wrapper form-wrapper" data-drupal-selector="edit-field-e-mail-wrapper" id="edit-field-e-mail-wrapper"> <div class="js-form-item form-item js-form-type-email form-type-email js-form-item-field-e-mail-0-value form-item-field-e-mail-0-value"> <label for="edit-field-e-mail-0-value" class="js-form-required form-required">E-mail</label> <input data-drupal-selector="edit-field-e-mail-0-value" type="email" id="edit-field-e-mail-0-value" name="field_e_mail[0][value]" value="" size="60" maxlength="254" placeholder="" class="form-email required" required="required" aria-required="true" /> </div> </div> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"><input data-drupal-selector="edit-submit" type="submit" id="edit-submit" name="op" value="Save" class="button button--primary js-form-submit form-submit" /> </div> </form> </section> </div> </article> </div> </div> </div> <aside class="layout-sidebar-first" role="complementary"> </aside> </main> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"en\/","currentPath":"node\/68","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"fitvids":{"selectors":".video-filter\r,iframe","custom_vendors":["iframe[src^=\u0022https:\/\/youtu.be\u0022]"],"ignore_selectors":""},"ajaxTrustedUrl":{"\/en\/comment\/reply\/node\/68\/comment":true},"antibot":{"forms":{"comment-form":{"id":"comment-form","key":"8p7j68CoBiN3vf9f-cTcpUeQeOZZtAdiOr3uTkNbdVZ"}}},"user":{"uid":0,"permissionsHash":"7fe8a1d301900dc4138d19200e8271ba63fda239fcb1affbff4174b3d3da1aff"}}</script> <script src="/core/assets/vendor/jquery/jquery.min.js?v=3.7.1"></script> <script src="/core/assets/vendor/once/once.min.js?v=1.0.1"></script> <script src="/core/misc/drupalSettingsLoader.js?v=10.4.2"></script> <script src="/core/misc/drupal.js?v=10.4.2"></script> <script src="/core/misc/drupal.init.js?v=10.4.2"></script> <script src="/modules/contrib/antibot/js/antibot.js?sroby2"></script> <script src="/modules/contrib/cheeseburger_menu/js/cheeseburger_menu.js?v=1.x"></script> <script src="/core/modules/filter/filter.js?v=10.4.2"></script> <script src="/libraries/fitvids/jquery.fitvids.js?v=10.4.2"></script> <script src="/modules/contrib/fitvids/js/init-fitvids.js?v=10.4.2"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10