<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Defeating contact form spam by hiding the webmail script</title>
	<atom:link href="http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/</link>
	<description>Ardamis is a blog about web development and technology in general.</description>
	<lastBuildDate>Fri, 03 Feb 2012 03:06:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Chris</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-44030</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Sat, 01 Jan 2011 02:47:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-44030</guid>
		<description>@ ardamis

First up, this is a great strategy to help reduce spam DRAMATICALLY from contact form spam attacks!  About three weeks ago, I had about 100 spam e-mails (all received at exactly 1PM) - and decided I had enough!

I got it to work initially on my website with no problems - just as it is outlined above - for over a week and a half now.  I even used a &quot;human respondent&quot; question (1+1 = ?) to help further filter out the spam - and everything was working flawlessly.

However, this evening I went back in to remove my challenge question (as I kind of felt like my wedding clients might find it strange), and decided to replace it with a hidden spry form field box (which would be hidden with CSS) that would automatically prevent the form from being submitted if it WAS filled out...as no human should really be able to see it.

However, something got messed up...  Now...  I can&#039;t get the spry validation AND the redirect to the proper PHP submission file to work at the same time.

I either get all my spry form fields to validate - but when I click on submit the contact page redirects me to the &quot;No Java Script&quot; decoy php file... OR I can get the form to submit properly to the real form mail php file...BUT the spry text fields are not validated first to assure that required form fields are filled out.

As soon as I add the &#039;onsubmit=&quot;return formProtect();&quot; piece into the following code...

&lt;code&gt; &lt;/code&gt;

The spry validation no longer works...but the form does submit correctly (even if only one letter is typed into a field - and not all the required fields are filled out)

I can&#039;t for the life of me figure out why it won&#039;t all work now!!!  Anyone have any suggestions?  I would sure appreciate it!</description>
		<content:encoded><![CDATA[<p>@ ardamis</p>
<p>First up, this is a great strategy to help reduce spam DRAMATICALLY from contact form spam attacks!  About three weeks ago, I had about 100 spam e-mails (all received at exactly 1PM) &#8211; and decided I had enough!</p>
<p>I got it to work initially on my website with no problems &#8211; just as it is outlined above &#8211; for over a week and a half now.  I even used a &#8220;human respondent&#8221; question (1+1 = ?) to help further filter out the spam &#8211; and everything was working flawlessly.</p>
<p>However, this evening I went back in to remove my challenge question (as I kind of felt like my wedding clients might find it strange), and decided to replace it with a hidden spry form field box (which would be hidden with CSS) that would automatically prevent the form from being submitted if it WAS filled out&#8230;as no human should really be able to see it.</p>
<p>However, something got messed up&#8230;  Now&#8230;  I can&#8217;t get the spry validation AND the redirect to the proper PHP submission file to work at the same time.</p>
<p>I either get all my spry form fields to validate &#8211; but when I click on submit the contact page redirects me to the &#8220;No Java Script&#8221; decoy php file&#8230; OR I can get the form to submit properly to the real form mail php file&#8230;BUT the spry text fields are not validated first to assure that required form fields are filled out.</p>
<p>As soon as I add the &#8216;onsubmit=&#8221;return formProtect();&#8221; piece into the following code&#8230;</p>
<p><code> </code></p>
<p>The spry validation no longer works&#8230;but the form does submit correctly (even if only one letter is typed into a field &#8211; and not all the required fields are filled out)</p>
<p>I can&#8217;t for the life of me figure out why it won&#8217;t all work now!!!  Anyone have any suggestions?  I would sure appreciate it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steev</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-29625</link>
		<dc:creator>Steev</dc:creator>
		<pubDate>Tue, 16 Mar 2010 14:22:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-29625</guid>
		<description>I am having trouble combining these two functions to work together.

Can someone please show me the JavaScript code that I should use if I want to combine both methods into one JavaScript file, and call them with one single function?</description>
		<content:encoded><![CDATA[<p>I am having trouble combining these two functions to work together.</p>
<p>Can someone please show me the JavaScript code that I should use if I want to combine both methods into one JavaScript file, and call them with one single function?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ardamis</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17583</link>
		<dc:creator>ardamis</dc:creator>
		<pubDate>Sat, 17 Jan 2009 15:49:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17583</guid>
		<description>Quite right.

And I explain how to create a &#039;trap&#039; field for spam-bots in a similar post:

http://www.ardamis.com/2007/09/12/defeating-wordpress-comment-spam/</description>
		<content:encoded><![CDATA[<p>Quite right.</p>
<p>And I explain how to create a &#8216;trap&#8217; field for spam-bots in a similar post:</p>
<p><a href="http://www.ardamis.com/2007/09/12/defeating-wordpress-comment-spam/" rel="nofollow">http://www.ardamis.com/2007/09/12/defeating-wordpress-comment-spam/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: New Orleans Web Design</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17549</link>
		<dc:creator>New Orleans Web Design</dc:creator>
		<pubDate>Tue, 13 Jan 2009 15:55:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17549</guid>
		<description>Here&#039;s another possible addition to this equation: add a text field that is hidden via CSS. Name it &quot;Subject&quot; or something similarly-important-looking. Reject a submission if the field IS filled out; a human should never see it due to the CSS rule.</description>
		<content:encoded><![CDATA[<p>Here&#8217;s another possible addition to this equation: add a text field that is hidden via CSS. Name it &#8220;Subject&#8221; or something similarly-important-looking. Reject a submission if the field IS filled out; a human should never see it due to the CSS rule.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Contact Form Spam &#8212; Sumy Designs Web Design Blog</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17332</link>
		<dc:creator>Contact Form Spam &#8212; Sumy Designs Web Design Blog</dc:creator>
		<pubDate>Mon, 15 Dec 2008 19:40:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17332</guid>
		<description>[...] I just implemented it today, so I will report back later with my success or failure.</description>
		<content:encoded><![CDATA[<p>[...] I just implemented it today, so I will report back later with my success or failure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: defaultCharacter</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17248</link>
		<dc:creator>defaultCharacter</dc:creator>
		<pubDate>Sat, 22 Nov 2008 21:40:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17248</guid>
		<description>Thanks for the tips, they were very helpful.  I use an SaaS to capture sales leads submitted on a web page form; the data was going directly to the SaaS vendor&#039;s database.  The spammers copied the action URL and sent the string to our db with the required fields.  As you suggested, I implemented a similarly named &quot;formprotect.js&quot; file, the fake php, and a note that appears if scripting is turned off on my site and reduced spam by about 95%.  :)  We don&#039;t want to use the challenge/response technique as some people just won&#039;t submit the form if there is too much for them to input, so I am still getting some odd submissions from the web (still some kind of bypass of the required fields), but will research those further.  

I just don&#039;t understand what these bizarre people hope to accomplish by spamming.  They must spend a lot of time doing it.

Thanks again for sharing with us your creativity. :)</description>
		<content:encoded><![CDATA[<p>Thanks for the tips, they were very helpful.  I use an SaaS to capture sales leads submitted on a web page form; the data was going directly to the SaaS vendor&#8217;s database.  The spammers copied the action URL and sent the string to our db with the required fields.  As you suggested, I implemented a similarly named &#8220;formprotect.js&#8221; file, the fake php, and a note that appears if scripting is turned off on my site and reduced spam by about 95%.  :)  We don&#8217;t want to use the challenge/response technique as some people just won&#8217;t submit the form if there is too much for them to input, so I am still getting some odd submissions from the web (still some kind of bypass of the required fields), but will research those further.  </p>
<p>I just don&#8217;t understand what these bizarre people hope to accomplish by spamming.  They must spend a lot of time doing it.</p>
<p>Thanks again for sharing with us your creativity. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17133</link>
		<dc:creator>Todd</dc:creator>
		<pubDate>Wed, 29 Oct 2008 21:25:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17133</guid>
		<description>That&#039;s when you build a new system, of course. Nothing lasts forever... especially not when people are trying to hack it all of the time.</description>
		<content:encoded><![CDATA[<p>That&#8217;s when you build a new system, of course. Nothing lasts forever&#8230; especially not when people are trying to hack it all of the time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Sweeney</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17086</link>
		<dc:creator>Charles Sweeney</dc:creator>
		<pubDate>Mon, 20 Oct 2008 20:46:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-17086</guid>
		<description>What&#039;s to stop a bot reading the correct form action in the JavaScript file?  I can easily see how such a system would initially block bots due to security through obscurity but what happens when your system becomes well known?</description>
		<content:encoded><![CDATA[<p>What&#8217;s to stop a bot reading the correct form action in the JavaScript file?  I can easily see how such a system would initially block bots due to security through obscurity but what happens when your system becomes well known?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jack</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-10429</link>
		<dc:creator>Jack</dc:creator>
		<pubDate>Fri, 01 Feb 2008 17:21:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-10429</guid>
		<description>Good work.

I&#039;ve uploaded the &quot;validate&quot; script OK, but I&#039;m still getting spam using the form fields. 

Your &quot;bad form / good form&quot; script looks ideal. However, I&#039;m have trouble with the code when I try to make both scropts work in the the same form action.

Any chnace you could post a simple form or text file with the double protection included.

Thanks anyway for the validate script.

Best regards

Jack</description>
		<content:encoded><![CDATA[<p>Good work.</p>
<p>I&#8217;ve uploaded the &#8220;validate&#8221; script OK, but I&#8217;m still getting spam using the form fields. </p>
<p>Your &#8220;bad form / good form&#8221; script looks ideal. However, I&#8217;m have trouble with the code when I try to make both scropts work in the the same form action.</p>
<p>Any chnace you could post a simple form or text file with the double protection included.</p>
<p>Thanks anyway for the validate script.</p>
<p>Best regards</p>
<p>Jack</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ardamis</title>
		<link>http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-9990</link>
		<dc:creator>ardamis</dc:creator>
		<pubDate>Wed, 26 Sep 2007 14:26:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.ardamis.com/2007/07/12/defeating-contact-form-spam/#comment-9990</guid>
		<description>Well, ok, point taken.  How about:

&quot;To accommodate visitors who aren&#039;t using JavaScript, the fake script could instead be a page explaining that JavaScript is required to submit the contact form and offering an alternate way to contact the author.&quot;</description>
		<content:encoded><![CDATA[<p>Well, ok, point taken.  How about:</p>
<p>&#8220;To accommodate visitors who aren&#8217;t using JavaScript, the fake script could instead be a page explaining that JavaScript is required to submit the contact form and offering an alternate way to contact the author.&#8221;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

