<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bots &#8211; Say Yeah!</title>
	<atom:link href="https://sayyeah.com/digital-insights/tag/bots/feed/" rel="self" type="application/rss+xml" />
	<link>https://sayyeah.com</link>
	<description>Digital management consulting that shapes more effective organizations.</description>
	<lastBuildDate>Tue, 17 Jun 2025 14:28:46 +0000</lastBuildDate>
	<language>en-CA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.4</generator>

<image>
	<url>https://insights.sayyeah.com/wp-content/uploads/2021/10/cropped-apple-touch-icon-32x32.png</url>
	<title>bots &#8211; Say Yeah!</title>
	<link>https://sayyeah.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>You catch more bots with honey: reducing form spam without captchas.</title>
		<link>https://sayyeah.com/digital-insights/you-catch-more-bots-with-honey-reducing-form-spam/</link>
		
		<dc:creator><![CDATA[Matt Rintoul]]></dc:creator>
		<pubDate>Wed, 16 Jul 2014 00:13:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured articles]]></category>
		<category><![CDATA[bots]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Web Design]]></category>
		<guid isPermaLink="false">http://sayyeah.com/sayYeah/sayYeahNewSite/wordpress/you-catch-more-bots-with-honey-reducing-form-spam/</guid>

					<description><![CDATA[<p>With the launch of our new website at sayyeah.com we added a simple contact form to allow interested people to get in touch with us. From the moment the site went live, the most interested people getting in touch were spambots. 100s of messages quickly flooded Lee’s mailbox. Instead of prospective clients, he was inundated by offers [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://sayyeah.com/digital-insights/you-catch-more-bots-with-honey-reducing-form-spam/">You catch more bots with honey: reducing form spam without captchas.</a> appeared first on <a rel="nofollow" href="https://sayyeah.com">Say Yeah!</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-9920" src="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8tp88Pvho1qa4s95-1.jpg" alt="Examples of form spam" srcset="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8tp88Pvho1qa4s95-1.jpg 500w, https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8tp88Pvho1qa4s95-1-300x180.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p>With the launch of our new website at <a href="https://sayyeah.com">sayyeah.com</a> we added a simple contact form to allow interested people to get in touch with us. From the moment the site went live, the most interested people getting in touch were <a href="http://en.wikipedia.org/wiki/Spambot">spambots</a>.</p>
<p>100s of messages quickly flooded <a href="http://twitter.com/smack416">Lee’s</a> mailbox. Instead of prospective clients, he was inundated by offers for discount Michael Kors handbags, apparently being sold from a small fishing charter company and a diabetes care website (among many others).</p>
<p><span id="more-5890"></span></p>
<p>We needed a way to block these useless submissions <em>without adding any additional user requirements to fill out the form</em>, such as captchas or simple math problems.</p>
<p>So how did we handle this challenge?</p>
<p>The answer in our case was to use a <em><a href="http://en.wikipedia.org/wiki/Honeypot_(computing)">Honeypot form field</a></em>. What this entails is creating a trap field. A human using the website won’t see or fill out this field, but a bot will, and when it dumps content in to it, we’ll have effectively caught the bot.</p>
<p><strong>The Front End</strong></p>
<p>Our basic form consists of a few fields. Name, Email, Message. This is what we’re looking for from real people trying to connect with us.</p>
<p>Our trap field is called Phone. This field shouldn’t be named <em>trap</em>, or <em>gotcha</em>, or <em>lolsillybots</em>, because it’s easier to detect something that looks out of place. By blending the naming convention in with the form, it’s harder for the bot to detect it.</p>
<p>Here’s our initial form, with all fields visible. The blank field is the honeypot field.</p>
<p><img class="alignnone size-full wp-image-9919" src="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnmuBUck1qa4s95.jpg" alt="Form" srcset="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnmuBUck1qa4s95.jpg 300w, https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnmuBUck1qa4s95-207x300.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>&nbsp;</p>
<p><strong>Remove from the tab index</strong></p>
<p>First lets take the element out of the tab flow. If we don’t do this, when a user presses tab to jump from the adjacent field they will jump to the top of the screen with no understanding of what’s going on.</p>
<p>This tag goes right in the HTML. tabindex=“-1”</p>
<p><img class="alignnone size-full wp-image-9918" src="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnn4LVKE1qa4s95.jpg" alt="Form page code with form shown on the left" srcset="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnn4LVKE1qa4s95.jpg 500w, https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnn4LVKE1qa4s95-300x151.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p><strong>Visually remove the honeypot element</strong></p>
<p>Next we can target the element #phone in a CSS stylesheet and position it absolutely {position:absolute;}, way off screen. {top:-10000px;}</p>
<p>This will ensure that the form field isn’t visible to the average person visiting your site.</p>
<p><img class="alignnone size-full wp-image-9917" src="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnnbPqEr1qa4s95.jpg" alt="Form page code with form shown on the left" srcset="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnnbPqEr1qa4s95.jpg 500w, https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rnnbPqEr1qa4s95-300x131.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p><em>Some notes:</em></p>
<ul>
<li>The field should not be disabled, otherwise, nothing can write in it, and that would defeat the purpose;</li>
<li>You should also avoid using display: none; CSS as some bots can catch that you’re hiding the field.</li>
</ul>
<p>&nbsp;</p>
<p><strong>The Back End</strong></p>
<p>Now that we have the honeypot field in place and hidden from human eyes, we need to set up a backend method to catch and validate its value. What this will do is look at our field and make sure it meets the criteria we set, in our case, it must be empty.</p>
<p>How this is achieved will be different for each programming language, but for our example, here’s Express running on Node with node-validator installed.</p>
<p><img class="alignnone size-full wp-image-9916" src="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rm1jKL8Q1qa4s95.png" alt="Node spam validation" srcset="https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rm1jKL8Q1qa4s95.png 413w, https://insights.sayyeah.com/wp-content/uploads/2014/07/tumblr_inline_n8rm1jKL8Q1qa4s95-300x18.png 300w" sizes="(max-width: 413px) 100vw, 413px" /></p>
<p>What this line is saying is “Look at the value and ensure it’s nothing (string value=”).</p>
<p>If it is, continue, if it’s not, throw an error, don’t email us, call the FBI, log the request, etc. Whatever you choose as the outcome for invalid posts.</p>
<p><strong>That’s it</strong></p>
<p>And so far it’s working for our small submission form. It was quick to setup, taking less than 5 minutes, and dropped our spam submissions down to zero. At least for the time being.</p>
<p>This isn’t fool proof, and if our form had more value for the spammers they&#8217;d quickly find away around it. But it’s the first line of defence and if the bot(s) that spam us find a work around or get more sophisticated, we’ll have to up the ante.</p>
<p>There are many other methods for stopping unwanted form submissions, you can check out some suggestions in <a href="http://stackoverflow.com/questions/2387496/how-to-prevent-robots-from-automatically-filling-up-a-form">this post on StackOverflow</a>.</p>
<h2 style="text-align: center;">Product strategy as a foundational skill</h2>
<p style="text-align: center;">If you&#8217;re looking to bring fundamental <a href="https://sayyeah.com/approach/product-strategy/">product strategy methodologies and execution</a> to your team, we&#8217;re here to help.</p>
<p style="text-align: center;"><a class="button" href="https://sayyeah.com/contact-us/"><strong>Get in touch</strong></a></p>
<p>The post <a rel="nofollow" href="https://sayyeah.com/digital-insights/you-catch-more-bots-with-honey-reducing-form-spam/">You catch more bots with honey: reducing form spam without captchas.</a> appeared first on <a rel="nofollow" href="https://sayyeah.com">Say Yeah!</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
