<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 🐾 Onar A.</title>
    <description>The latest articles on DEV Community by 🐾 Onar A. (@onar).</description>
    <link>https://dev.to/onar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F242057%2Fd0161537-b0b0-4e93-bb88-7633e42b78a9.jpg</url>
      <title>DEV Community: 🐾 Onar A.</title>
      <link>https://dev.to/onar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/onar"/>
    <language>en</language>
    <item>
      <title>Stop spam on Webflow contact forms using Zapier and OOPSpam</title>
      <dc:creator>🐾 Onar A.</dc:creator>
      <pubDate>Sun, 05 Feb 2023 23:50:57 +0000</pubDate>
      <link>https://dev.to/onar/stop-spam-on-webflow-contact-forms-using-zapier-and-oopspam-1bb2</link>
      <guid>https://dev.to/onar/stop-spam-on-webflow-contact-forms-using-zapier-and-oopspam-1bb2</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://webflow.com/" rel="noopener noreferrer"&gt;Webflow&lt;/a&gt; is a popular website builder that allows users to create websites through a drag-and-drop interface. While the platform provides a reCaptcha field to add spam protection to its contact forms, this may not always be effective. reCaptcha and other captcha solutions are becoming increasingly irrelevant due to the availability of services that can solve them for a low cost.&lt;/p&gt;

&lt;p&gt;To tackle this issue, this article presents an alternative solution to prevent spam submissions in Webflow contact forms. The approach involves using automation tools such as &lt;a href="https://zapier.com/" rel="noopener noreferrer"&gt;Zapier&lt;/a&gt; or &lt;a href="https://www.make.com" rel="noopener noreferrer"&gt;Make&lt;/a&gt; to capture form submissions, then filtering them through a spam filter before finally sending an email notification to the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chose your automation tools (Zapier, Make, etc.)
&lt;/h2&gt;

&lt;p&gt;I'll be using Zapier for this tutorial, but you can do this with Make or any other automation platforms.&lt;/p&gt;

&lt;p&gt;If you wish to skip the steps below, use &lt;a href="https://zapier.com/apps/email/integrations/webflow/1170002/spam-check-new-webflow-contact-form-submissions-with-oopspam-and-send-outbound-emails" rel="noopener noreferrer"&gt;the template&lt;/a&gt; we created for a quick start.&lt;/p&gt;

&lt;p&gt;Zapier will walk you through the configuration for all 4 steps: Webflow -&amp;gt; Spam check with OOPSpam -&amp;gt; Filter -&amp;gt; Email by Zapier.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Filter&lt;/em&gt; should be configured by default. The filter is straightforward with just one rule: &lt;strong&gt;continue processing only if the Spam Score is less than 3&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring Webflow Zap
&lt;/h2&gt;

&lt;p&gt;I made a simple website using a pre-built template. It includes a working contact form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fcf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fcf.png" title="Webflow contact form" alt="Webflow contact form" width="800" height="949"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once we connect our Webflow Zapier app to our Webflow account, we should be able see our contact form.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In order for Zapier to recognize your contact form, you must publish your website and submit at least one form submission. Otherwise, your contact form will be hidden.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To configure Webflow with the Form Submission event, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select Webflow Zap and then under Event, select &lt;strong&gt;Form Submissions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Choose account&lt;/strong&gt; to connect your Webflow account.&lt;/li&gt;
&lt;li&gt;Fill in the &lt;em&gt;Site Name&lt;/em&gt; and &lt;em&gt;Form Name&lt;/em&gt; fields.&lt;/li&gt;
&lt;li&gt;Your first submission will be populated at &lt;strong&gt;Test trigger&lt;/strong&gt;. Check to see if you get the &lt;em&gt;We found a submissions!&lt;/em&gt; message.&lt;/li&gt;
&lt;li&gt;You're finished! The following step is to check for spam.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first submission will also appear as test data when you set up Webflow for the first time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fwebflow-zapier.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fwebflow-zapier.gif" title="Webflow Zapier set up" alt="Webflow Zapier set up" width="480" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking for spam with OOPSpam
&lt;/h2&gt;

&lt;p&gt;To set up spam protection, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Register for an API key on the &lt;a href="https://app.oopspam.com/" rel="noopener noreferrer"&gt;OOPSpam dashboard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;In Zapier, enter the API key when prompted on the "Choose Account" step.&lt;/li&gt;
&lt;li&gt;Map necessary form information to OOPSpam's fields:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Content&lt;/strong&gt;: This is where the form message goes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sender IP&lt;/strong&gt;: Leave blank.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email&lt;/strong&gt;: Map the form submitter's email here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allow messages only in these languages&lt;/strong&gt;: Select any languages you expect to receive form submissions in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allow messages only from these countries&lt;/strong&gt;: Filter submissions by country.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Test the action and use the returned "Score" to approve or reject submissions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;See the GIF below for a visual guide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fzapier-oopspam.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fzapier-oopspam.gif" title="OOPSpam Zapier set up" alt="OOPSpam Zapier set up" width="480" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Filtering with Filter
&lt;/h2&gt;

&lt;p&gt;The "Filter" app in Zapier sets conditions for your automation flow to continue.&lt;/p&gt;

&lt;p&gt;In this case, the condition is that the "Score" (or Spam Score) must be less than 3. This ensures that only emails with a low spam score will continue through.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Ffilter-zapier.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Ffilter-zapier.gif" title="Filter by Zapier set up" alt="Filter by Zapier set up" width="480" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Alternative Approach: Store Spam Submissions in Airtable
&lt;/h3&gt;

&lt;p&gt;Instead of using the Filter app, you can use the Paths app to take different actions based on whether the submission is considered spam or not. Here's an example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Path A: If the Score is less than 3, then send an email.&lt;/li&gt;
&lt;li&gt;Path B: If the Score is greater than or equal to 3, then create a record in Airtable to store the spam submission for later review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This alternative approach stores all spam submissions in Airtable for future analysis. You can use another platform like Google Sheets if desired.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's important to note that scores of 3 or higher should be considered as spam, while scores less than 3 are considered non-spam.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fpaths-zapier.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fpaths-zapier.png" title="Paths by Zapier set up" alt="Paths by Zapier set up" width="536" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Send an email to yourself with Email by Zapier
&lt;/h2&gt;

&lt;p&gt;The final step is to set up the &lt;strong&gt;Send Outbound Email&lt;/strong&gt; to notify yourself of new submissions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fsendemail-zapier.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.oopspam.com%2Fblog%2Fassets%2Fposts%2Fwebflow-contact-form%2Fsendemail-zapier.gif" title="Send Email by Zapier set up" alt="Send Email by Zapier set up" width="480" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to send the email, you need to map the required fields to the data from the Webflow contact form submissions. The required fields are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;To&lt;/strong&gt;: Your email address (up to 5 emails can be added).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subject&lt;/strong&gt;: The name of the form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Body&lt;/strong&gt;: The email body can be in HTML or plain text. In the example, the data points (email, name, message fields) are separated by line breaks using the &lt;p&gt; HTML tag.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reply To&lt;/strong&gt; (optional): This field is not required, but it makes responding to submissions more convenient. The sender's email can be added here so that you can simply click the "Reply" button in your email client if you want to respond to the submission.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have set up the email, test it to see if you receive the first submission. You can also use other email services such as Postmark or Mailgun instead of Email by Zapier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;This was a basic workflow to filter spam in your Webflow contact forms using Zapier. You can also use other platforms to automate the process. Plus, you can add extra steps and conditions to make it more complex, such as sending an automated email response to the visitor confirming successful submission.&lt;/p&gt;

</description>
      <category>announcement</category>
      <category>devto</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>7 ways to stop spam on your website</title>
      <dc:creator>🐾 Onar A.</dc:creator>
      <pubDate>Thu, 24 Jun 2021 10:46:26 +0000</pubDate>
      <link>https://dev.to/onar/7-ways-to-stop-spam-on-your-website-191l</link>
      <guid>https://dev.to/onar/7-ways-to-stop-spam-on-your-website-191l</guid>
      <description>&lt;p&gt;Feeling overwhelmed by the amount of spam you are getting on your website? You're not alone.&lt;/p&gt;

&lt;p&gt;This article doesn't list every spam detection strategy under the sun.&lt;/p&gt;

&lt;p&gt;Instead, it lists some of the tactics we use at &lt;a href="https://www.oopspam.com"&gt;OOPSpam&lt;/a&gt; and many more proven to work ones. These are methods that stopped over 1M spam with 99.8% accuracy.&lt;/p&gt;

&lt;p&gt;Let's get to it&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Honeypot: filter spam with a hidden field
&lt;/h2&gt;

&lt;p&gt;It is the oldest trick in the book. The honeypot technique is easy to understand and implement. It works both for forms and comments. Here is a simple illustration that shows how honeypot spam filtering works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Pl8iW0QL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/honeypot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pl8iW0QL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/honeypot.png" alt="How honeypot spam filtering works" title="How honeypot spam filtering works"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A spam bot submits a form by making sure that every field or at least the ones that are required is filled so, no form validation prevents it from submitting. The honeypot technique relies on this assumption.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 Many people use honeypot technique and get near-zero spam. As your website gets more traffic or for some reason your website ends up in a spammer's database, you may get hit by more "serious" bots which could easily bypass honeypot. Remember, honeypot tactic won't work against manually submitted spam by human.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Implementation&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a form with fields (name, email, etc.)&lt;/li&gt;
&lt;li&gt;Include a hidden field(s)&lt;/li&gt;
&lt;li&gt;Check in your backend, if the hidden field is NOT empty then it is spam&lt;/li&gt;
&lt;li&gt;Done! 🎉&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Make sure to hide the field properly. Bots can detect which field is hidden and avoid filling it.&lt;/p&gt;

&lt;p&gt;ℹ️ Here are few tricks to make it harder:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do NOT use display:none, instead hide them by pushing them out of a screen or applying opacity: 0; position: absolute; to the field. Be aware of accessibility issues.&lt;/li&gt;
&lt;li&gt;Do NOT use obvious class names like hidden, invisible&lt;/li&gt;
&lt;li&gt;Do NOT use obscure field names for hidden fields. Use email, name, phone, etc. instead.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;and here is one way to do it:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/oopspam/embed/YzZOaYv?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Spam Words: check content for malicious words
&lt;/h2&gt;

&lt;p&gt;All spam messages want you to do something for them. Let it be SEO, Website development offers, selling, and advertising products. That means they tend to use the same words such as "free", "get it now", "100%", "SEO".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--60JyyQnk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/spam-word-cloud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--60JyyQnk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/spam-word-cloud.png" alt="Spam words cloud" title="Spam words cloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course one can argue that these words could certainly be used in legitimate messages, and they do appear. So, how effective is it to flag a message as spam based on spam words?&lt;/p&gt;

&lt;p&gt;In our experience, it depends on how you implement it. It is important that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You look for a combination of words instead of a single word. Such as "get it now" instead of "get".&lt;/li&gt;
&lt;li&gt;Consider a threshold for the number of spam words in the content.&lt;/li&gt;
&lt;li&gt;Consider the frequency of spam word in a content&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Take a look at some of the spam words &lt;a href="https://github.com/OOPSpam/spam-words"&gt;we published&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Captcha: Solve an interactive problem
&lt;/h2&gt;

&lt;p&gt;You are presented with a puzzle, math problem, or simple game to complete. Once you complete the task you are allowed to submit a comment or purchase a product.&lt;/p&gt;

&lt;p&gt;Captcha techniques usually work two way:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Forces bots and humans to wait a certain time (aka rate-limiting) by solving a puzzle.&lt;/li&gt;
&lt;li&gt;Tracking a user behavior and decide if it is a bot&lt;/li&gt;
&lt;li&gt;A simple problem that only humans can solve (text-based).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While the third option still in use, it is not sufficient anymore. Bots got better and can easily solve math problems and read obscure letters nowadays.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QkQ8Yj2h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/captcha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QkQ8Yj2h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/captcha.png" alt="Different captcha examples" title="Different captcha examples"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most widely used and still somehow reliable approach is to represent an interactive puzzle, game-like captcha. This is a combination of both the first and second captcha types. There is a good chance you have already seen these types of captchas. The idea behind this is that while you are busy solving a puzzle, the captcha collects certain information about your behavior like mouse movement on a website and browsing history. The bots don't like to wait for a few seconds. They have to move to the next website and act fast to submit spam as many websites as possible.&lt;/p&gt;

&lt;p&gt;Combined your website behavior and browsing history information with a couple of seconds waiting time results in the final decision about the user (spam or not).&lt;/p&gt;

&lt;p&gt;The most notable captcha solution is &lt;a href="https://developers.google.com/recaptcha/"&gt;reCaptcha&lt;/a&gt; and &lt;a href="https://www.hcaptcha.com/"&gt;hCaptcha&lt;/a&gt; (offers better privacy).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 Captchas tend to have accessibility and privacy issues. It may also negatively affect your conversion rate.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. IP-based filtering: check for blocked spammer IPs
&lt;/h2&gt;

&lt;p&gt;There are services such as &lt;a href="https://www.spamhaus.org/"&gt;Spamhaus&lt;/a&gt; that keep a list of known spammer IPs. Spammers change their IPs often to avoid being blocked. However, blocking based on an IP is still a powerful way to block spam that is because a wide range of websites reports these IPs to these services.&lt;/p&gt;

&lt;p&gt;At OOPSpam, we receive thousands of spammer IPs every day. From our experience, over 60% of spam are detected solely based on IP. That being said relying entirely on an IP-based filtering may not be the best protection.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 Keep in mind that some legitimate users may use VPNs or proxies which tend to be used by spammers as well. That is why you may unintentionally restrict legitimate visitors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  5. Country and Language restriction
&lt;/h2&gt;

&lt;p&gt;It is a simple and yet robust way to filter spam from your website. There are two approaches for this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using DNS based solutions like Cloudflare that could block access to your website from selected countries &lt;/li&gt;
&lt;li&gt;Allow visitors from every country to view your website but restrict submissions (contact form, comment, etc.) only.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Both approaches work great but if you want to be open to every country then the second option is the way to go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kWUf3l-U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/flags.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kWUf3l-U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/flags.png" alt="Flags" title="Flags"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another less known way to block spam is by languages. Similar to country restriction, by simply allowing submission in a certain language. If you expect comments on your website to be in English, letting comments only in English through could potentially eliminate unnecessary work.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Machine Learning to filter spam content
&lt;/h2&gt;

&lt;p&gt;This is a more advanced solution that can be hard to implemented and most importantly find a proper data set to train an ML algorithm.&lt;/p&gt;

&lt;p&gt;Filtering spam using ML is a rather well-documented process especially with Bayesian Filtering, however, if you want a good result (high accuracy) then you need to have a well-defined and clean data set which may be hard to find.&lt;/p&gt;

&lt;p&gt;That being said no matter how good the data set is, spammers also get better at customizing their messages. Especially with the recent development with OpenAI's &lt;a href="https://beta.openai.com/"&gt;GPT-3&lt;/a&gt; shows that AI can generate genuine-looking, human-like, custom messages. This could make spam detection using Machine Learning algorithms harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Rule-based spam filtering
&lt;/h2&gt;

&lt;p&gt;Rule-based spam filtering is static and predefined rules to catch spam. It's one of the simplest forms of spam filtering. This technology has been around since spam started appearing in our email inboxes. One notable example of a rule-based spam filter is Spam Assassin for emails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RN4G0sbJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/rules.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RN4G0sbJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/ways-to-stop-spam/rules.png" alt="Traffic light" title="Traffic light"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The more you deal with spammers, the more you learn how they operate and what are the common patterns. Besides the above-listed tactics, there are many other small ways to detect spam. Sometimes, these rather insignificant rules spot spam before it reaches other more advanced analyses.&lt;/p&gt;

&lt;p&gt;Technically, some of the mentioned methods in this article can be categorized as rule-based such as country &amp;amp; language restriction, honeypot, spam words.&lt;/p&gt;

&lt;p&gt;Here are some easy-to-implement rules you could consider (besides the ones above):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URLs in a spam message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many spam messages have URL(s) to get you to click on them. Does a message has a URL in it? It could be spam. Be careful with this though, you may end up blocking legitimate messages. It is important to check the reputation of URLs instead of flat-out blocking them. You could use WOT or Safe Browsing for this.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URL shortening services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are all seen URL shortening services that are used by spammers.&lt;/p&gt;

&lt;p&gt;Although not all URL shortening services are malicious. Some shortening services are for local use only, meaning they are not open to the public. For example, when you generate a short URL for your Dropbox image or Google Docs. So, be aware of this fact when you set a rule.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 A rule-based spam filtering is a powerful alternative to stop spam.  It has been used for decades but, make sure you reconsider your rules once in a while to avoid flagging legitimate messages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;There isn't a single solution for the spam problem. Spam messages on the web are different from spam in emails. To encounter them we need to use multiple approaches.&lt;/p&gt;

&lt;p&gt;Most of these tactics we already use at &lt;a href="https://www.oopspam.com"&gt;OOPSpam&lt;/a&gt; and found them very effective when used in combination.&lt;/p&gt;

&lt;p&gt;Happy spam-free day!&lt;/p&gt;

</description>
      <category>security</category>
      <category>webdev</category>
      <category>wordpress</category>
      <category>programming</category>
    </item>
    <item>
      <title>My anti-spam API product stopped over 1M spam with %99 accuracy, and here are things I learned</title>
      <dc:creator>🐾 Onar A.</dc:creator>
      <pubDate>Mon, 12 Oct 2020 13:27:44 +0000</pubDate>
      <link>https://dev.to/onar/my-anti-spam-api-product-stopped-over-1m-spam-with-99-accuracy-and-here-are-things-i-learned-15il</link>
      <guid>https://dev.to/onar/my-anti-spam-api-product-stopped-over-1m-spam-with-99-accuracy-and-here-are-things-i-learned-15il</guid>
      <description>&lt;p&gt;&lt;a href="https://www.oopspam.com"&gt;OOPSpam Anti-Spam API&lt;/a&gt; made its next milestone. It processed and filtered over 1 000 000 spam messages with %99 accuracy. This is big for me. When I launched the project's commercial version in 2019, I couldn’t imagine it will reach this point. In 2017, I was doing research in this area as part of my master’s degree in Italy. Studying and digging research papers from Semantic Scholar and Google Scholar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.onaralili.com/posts/oopspamfilter/"&gt;The first version of OOPSpam&lt;/a&gt; was a collection of APIs that merged into one. Nowadays, It is a standalone SaaS with powerful analysis capabilities.&lt;/p&gt;

&lt;p&gt;After seeing so many different kinds of spam content, I relearned and abounded some lessons I got from my previous academic experience. In this article, I will lay out some thoughts about spam and their nature.&lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y_mD5zrR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.onaralili.com/images/spam-charter.jpg" alt="" width="550" height="413"&gt;&lt;/center&gt;
&lt;h3&gt;
  
  
  It is a hard problem but …
&lt;/h3&gt;

&lt;p&gt;Just when you think you have a way to completely solve this problem, a new wave of spam campaign proves you otherwise. Many companies struggle to tackle this issue. The problem is that there are usually two types of spammers: manual (human) and bot. While a bot crawls the web and submits messages to millions of websites, manual spammers go to a website and submit their content.&lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zyMBo8Oa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.onaralili.com/images/robot-submit.png" alt="a robot illustration" width="654" height="491"&gt;&lt;/center&gt;

&lt;p&gt;I would still go ahead and claim that it is possible to reach a nearly perfect result with well-polished rules, Machine Learning models, content and IP analyses (that is how OOPSpam has 99% accuracy :) ). It is rather a strange problem. I can show a form submission that you would categorize it as spam but it is certainly not spam for someone. This brings us to my next point.&lt;/p&gt;

&lt;h3&gt;
  
  
  One Man's Trash Is Another Man's Treasure
&lt;/h3&gt;

&lt;p&gt;As Anti-Abuse Engineer, I dealt with a variety of spam. From a plain old spam to well-written, grammatically accurate (better than this article for sure) spam. Believe it or not, some people want to get SEO offers through their contact forms. Most people I know hate this kind of spam. So, how a spam-filter should approach this problem?&lt;/p&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--utOy3JQs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media2.giphy.com/media/SWoFzPlyaYpFgU02Ig/giphy.gif%3Fcid%3Decf05e47nj5jnpai80aslw0obnowgj9vm8uq9j5paq195kit%26rid%3Dgiphy.gif" alt="" width="480" height="270"&gt;&lt;/center&gt;

&lt;p&gt;Well, one way is: &lt;em&gt;Let them decide themselves&lt;/em&gt;. OOPSpam produces Spam Score, the output from a variety of analyses. It is up to OOPSpam users to adjust spam sensitivity. Spam Score isn’t a new invention or any things but it is a rather forgotten one. You see, Spam Score was a standard back when people fought with email spam (well, they still do). For some reason, this method is abundant (perhaps for simplicity) over True/False, Spam/Not Spam for web spam. Web spam is a difficult problem because seemingly spam-like messages are not spam for many, so you may end up filtering out your potential customers’ message.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who are those manual spammers?
&lt;/h3&gt;

&lt;p&gt;There are companies people pay to spam you. This is a million-dollar (estimated to be over $3M per year) industry. I recall seeing a contact form submission where a company offers to send 1 million messages for $49. What is problematic about human spammer is that the traditional techniques like captcha, the honeypot will not work. They will solve the captcha, fill the form, and submit it just like any other legitimate visitor would. To detect this kind of spam message are not easy. Machine Learning models alone tend to fail to detect these messages as they are trained to recognize a certain group of spam content. You need a set of different analyses to detect them. A combination of ML models and rule-based spam filers seems to work better.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spam bots are getting smarter
&lt;/h3&gt;

&lt;p&gt;Ah... Bots. A nice little script usually enough to stop them. At least it used to be. Today, they also solve a captcha, bypass honeypot. Did I mention there are &lt;a href="https://www.itpro.co.uk/security/34784/the-future-of-spam-is-scary"&gt;AI-based spam solutions&lt;/a&gt;? Here is a small paragraph from the article, just to acknowledge how crazy things may get:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"... Neural networks that can read text, understand the context of an image and write believable messages all without human interaction so spammers can build more realistic, personalised messages, making it more difficult to filter them out from legitimate mail ..."&lt;/p&gt;
&lt;/blockquote&gt;


&lt;center&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YvrYm4CP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media4.giphy.com/media/3o751WENiYYifHgVlS/giphy.gif%3Fcid%3Decf05e471afdrxs3ggprrvrlmfaws4j2re4vhtpvn7pwbeu7%26rid%3Dgiphy.gif" alt="" width="480" height="270"&gt;&lt;/center&gt;

&lt;p&gt;So, both spammers and anti-spam filters are using the same technology to fight each other. As a result, more and more studies are needed to fight this new type of spam.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final thoughts
&lt;/h3&gt;

&lt;p&gt;I am happy how OOPSpam API progresses. There are still lots of work that needs to be done. First and foremost, now the API is served through RapidAPI as I was focusing on the actual problem. But it seems like many people do not want to deal with RapidAPI. So, this ought to be addressed. Also, hoping to write more blog posts about spam prevention techniques.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>security</category>
    </item>
    <item>
      <title>3 top open-source comment systems and their anti-spam capabilities</title>
      <dc:creator>🐾 Onar A.</dc:creator>
      <pubDate>Fri, 27 Dec 2019 11:58:55 +0000</pubDate>
      <link>https://dev.to/onar/open-source-comment-systems-and-their-anti-spam-capabilities-40e7</link>
      <guid>https://dev.to/onar/open-source-comment-systems-and-their-anti-spam-capabilities-40e7</guid>
      <description>&lt;p&gt;We'll talk about different comment systems and how they fight spam. Finally, at the end of the article, we will see what you can do about spam in such comment systems.&lt;/p&gt;

&lt;p&gt;First I thought writing on how to integrate spam filter to one of those open-source comment systems. Then, I convinced it would be probably more helpful to put together a nice list of open-source (and free) comment systems and describe the way they fight with spam.&lt;/p&gt;

&lt;p&gt;There are many options, some runs hell a lot of ads on your blog, some collect as much data possible about your visitors. Some ask for sign up, some don't. I will list a few good ones, you can, of course, go ahead and check their functionality on their website or different blogs. But this blog post is going to talk about How they approach spam protection in their system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-source and free comment systems
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://posativ.org/isso/"&gt;Isso&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Isso is an open-source, self-hosted and completely free. It comes out as "a commenting server similar to Disqus". Instead of writing a long paragraph I'm going to list main points: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's written in Python&lt;/li&gt;
&lt;li&gt;Supports all major browsers including IE10 (yep, people still use it).&lt;/li&gt;
&lt;li&gt;Comments support Markdown&lt;/li&gt;
&lt;li&gt;Admin panel to moderate comments&lt;/li&gt;
&lt;li&gt;Works with SQLite database&lt;/li&gt;
&lt;li&gt;Support Disqus &amp;amp; WordPress Import&lt;/li&gt;
&lt;li&gt;Small size 40kb (12kb gzipped)&lt;/li&gt;
&lt;li&gt;Basic spam protection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IS-r7iJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/Isso_comment_system.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IS-r7iJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/Isso_comment_system.png" alt="Isso comment system" title="Isso comment system" width="880" height="885"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why choose Isso as your comment system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No ads, no tracking&lt;/li&gt;
&lt;li&gt;Open-source, free &amp;amp; self-hosted&lt;/li&gt;
&lt;li&gt;Allows anonymous comments&lt;/li&gt;
&lt;li&gt;Fast and lightweight&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Spam filtering in Isso comment system
&lt;/h4&gt;

&lt;p&gt;Now, let's talk more about anti-spam capabilities. Isso comes with basic built-in spam protection. There are not any content or IP analyses. The only way you can protect yourself is to have a rate limit per IP. Let's say, 2 comments per minute. This is the place where you could also require email, author and email fields so no more anonymous comment.&lt;br&gt;
You can activate these limitations on your config file (e.g isso.conf) by adding &lt;em&gt;Guard&lt;/em&gt; parameter with appropriate fields :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;[&lt;span class="n"&gt;guard&lt;/span&gt;]
&lt;span class="n"&gt;enabled&lt;/span&gt; = &lt;span class="n"&gt;true&lt;/span&gt;
&lt;span class="n"&gt;ratelimit&lt;/span&gt; = &lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;direct&lt;/span&gt;-&lt;span class="n"&gt;reply&lt;/span&gt; = &lt;span class="m"&gt;3&lt;/span&gt;
&lt;span class="n"&gt;reply&lt;/span&gt;-&lt;span class="n"&gt;to&lt;/span&gt;-&lt;span class="n"&gt;self&lt;/span&gt; = &lt;span class="n"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;require&lt;/span&gt;-&lt;span class="n"&gt;author&lt;/span&gt; = &lt;span class="n"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;require&lt;/span&gt;-&lt;span class="n"&gt;email&lt;/span&gt; = &lt;span class="n"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read more about &lt;em&gt;Guard&lt;/em&gt; parameters on &lt;a href="https://posativ.org/isso/docs/configuration/server/#guard"&gt;the Isso official documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://schnack.cool/"&gt;Schnack&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Here is another alternative to paid comment systems. Just like Isso, Schnack is an open-source, free, self-hosted comment system. Here are the main points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's written in Javascript (Node.js)&lt;/li&gt;
&lt;li&gt;Really small packaging, 8KB&lt;/li&gt;
&lt;li&gt;Doesn't allow anonymous comments&lt;/li&gt;
&lt;li&gt;Supports third-party authentication (Github, Twitter, etc.)&lt;/li&gt;
&lt;li&gt;Works with SQLite database&lt;/li&gt;
&lt;li&gt;Admin panel to moderate comments&lt;/li&gt;
&lt;li&gt;No explicit spam protection, asks for authentication&lt;/li&gt;
&lt;li&gt;Support Disqus &amp;amp; WordPress Import&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hlMUeB4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/schnack_comment_system.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hlMUeB4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/schnack_comment_system.png" alt="Schnack comment system" title="Schnack comment system" width="880" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why choose Schnack as your comment system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No ads, no tracking&lt;/li&gt;
&lt;li&gt;Open-source, free &amp;amp; self-hosted&lt;/li&gt;
&lt;li&gt;Integration with third-party authentication providers (Github, Twitter, Google, and Facebook)&lt;/li&gt;
&lt;li&gt;Trust list (a way to allow some people to comment without approval from admin)&lt;/li&gt;
&lt;li&gt;Fast and lightweight&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, Schanck and Isso are pretty alike as both of them self-hosted, open-source and free. So, it is hard to tell why someone would choose one over the other. However, there are some differences such as Schanck's backend is on Node.js while Isso's is on Python. Schanck is smaller in terms of package size. While Isso supports anonymous commenting Schanck doesn't.&lt;/p&gt;

&lt;h4&gt;
  
  
  Spam filtering in Schanck comment system
&lt;/h4&gt;

&lt;p&gt;The author of Schanck answers this concern on &lt;a href="https://vis4.net/blog/2017/10/hello-schnack/#how-schnack-is-protecting-against-spam"&gt;his blog post&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0JMooGIi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/schnack_anti_spam.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0JMooGIi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/schnack_anti_spam.png" alt="Spam protection for Schnack comment system" title="Spam protection for Schnack comment system" width="880" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As Schanck doesn't support anonymous commenting and requires to sign up through one of the third-party providers which prevents spambots to comment on your blog. However, spammers are not always spambots. Many spammers are real people. There are services where you can hire people very cheap ($1 per hour) to spam. For these kinds of spammers, you cannot do much with third-party authentication. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://remark42.com/"&gt;Remark42&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Remark42 looks pretty promising. It is self-hosted and lightweight. The backend is written in Go and the frontend is in Node.js. &lt;br&gt;
Remark42 supports an anonymous comment, social login through Twitter, Github, etc, Voting, moderating comments and a bunch of other features. I would say Remark42 offers everything and more than all 2 options above.  Check &lt;a href="https://remark42.com/"&gt;the official website&lt;/a&gt; for the full list of features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JvQ3hTyb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/remark42_comment_system.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JvQ3hTyb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.oopspam.com/blog/assets/posts/remark42_comment_system.png" alt="Remark42 comment system" title="Remark42 comment system" width="880" height="803"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Spam filtering in Remark42 comment system
&lt;/h4&gt;

&lt;p&gt;As Remark42 allows optional anonymous commenting, anti-spam measurements need to be taken. There is not any built-in spam filter unless you disable anonymous commenting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spam filter for open-source comments system
&lt;/h2&gt;

&lt;p&gt;One of the most liberal perks that come with open-source projects is the ability to integrate. You can build own anti-spam filter with various rules such as &lt;a href="https://en.wikipedia.org/wiki/Honeypot_(computing)"&gt;honeypot&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/CAPTCHA"&gt;captcha&lt;/a&gt; or use third-party solutions like &lt;a href="https://oopspam.com"&gt;OOPSpam Anti-Spam API&lt;/a&gt;.&lt;br&gt;
The main reason why people don't want to use paid services like Disqus is privacy. For many, It is important to keep your data on your server while serving ad-free comments. Having anonymous comments are certainly good to have in your comment system, however, this also enables spammer to post on your blog post. &lt;br&gt;
That being said, some paid comment systems such as &lt;a href="https://commento.io/"&gt;Commento&lt;/a&gt; is a privacy-focused solution. They rely on a subscription model instead of an advertisement. Commento uses Akismet as a spam-filter which is a red flag considering Akismet requires to submit your blog URL, user's IP and user agent on top of the other optional parameters such as server information (such as $_SERVER in PHP).&lt;/p&gt;

&lt;p&gt;All in all, these are the main open-source, self-hosted and free comment systems in the wild. &lt;/p&gt;

&lt;p&gt;Happy spam-free day!&lt;/p&gt;

</description>
      <category>antispam</category>
      <category>commentsystems</category>
    </item>
  </channel>
</rss>
