[Yanel-dev] Spam block for Contact Resource
Jonathan Addison
jon at wyona.com
Fri Nov 16 11:09:11 CET 2007
Hi Simon,
I've attached a patch which adds spam blocking to the Contact Resource. =
It uses a method similar to this site: =
http://www.utahsysadmin.com/2007/05/16/stripped-down-jsspamblock/.
Basically it hides/populates fields with javascript, which the spam bots =
don't use at the moment.
You can test it locally by changing the contact-form.rtd in the Yanel =
website realm to use your email address, and then try to submit the =
Contact form with javascript on or off. It should fail if javascript is =
off and an incorrect value is typed into the validation box.
Let me know if there are any questions.
Jonathan
-------------- next part --------------
Index: src/contributions/resources/contact-form/src/java/org/wyona/yanel/im=
pl/resources/ContactResource.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/=
resources/ContactResource.java (revision 28956)
+++ src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/=
resources/ContactResource.java (working copy)
@@ -153,16 +153,18 @@
while(enumeration.hasMoreElements()){
if(enumeration.nextElement().toString().equals("email")) =
submit =3D true;
- }
+ } =
if(submit) {
- sendMail(transformer);
- if (request.getParameter("company") !=3D null) transformer=
.setParameter("company", request.getParameter("company"));
- if (request.getParameter("firstName") !=3D null) transform=
er.setParameter("firstName", request.getParameter("firstName"));
- if (request.getParameter("lastName") !=3D null) transforme=
r.setParameter("lastName", request.getParameter("lastName"));
- if (request.getParameter("email") !=3D null) transformer.s=
etParameter("email", request.getParameter("email"));
- if (request.getParameter("address") !=3D null) transformer=
.setParameter("address", request.getParameter("address"));
- if (request.getParameter("zipCity") !=3D null) transformer=
.setParameter("zipCity", request.getParameter("zipCity"));
- if (request.getParameter("message") !=3D null) transformer=
.setParameter("message", request.getParameter("message"));
+ if (request.getParameter("spamblock_hidden").equals("TRyAg=
41n") && request.getParameter("spamblock_input").equals("8989890")) { =
+ sendMail(transformer);
+ if (request.getParameter("company") !=3D null) transfo=
rmer.setParameter("company", request.getParameter("company"));
+ if (request.getParameter("firstName") !=3D null) trans=
former.setParameter("firstName", request.getParameter("firstName"));
+ if (request.getParameter("lastName") !=3D null) transf=
ormer.setParameter("lastName", request.getParameter("lastName"));
+ if (request.getParameter("email") !=3D null) transform=
er.setParameter("email", request.getParameter("email"));
+ if (request.getParameter("address") !=3D null) transfo=
rmer.setParameter("address", request.getParameter("address"));
+ if (request.getParameter("zipCity") !=3D null) transfo=
rmer.setParameter("zipCity", request.getParameter("zipCity"));
+ if (request.getParameter("message") !=3D null) transfo=
rmer.setParameter("message", request.getParameter("message"));
+ }
}
=
// create xslt transformer for global layout
Index: src/contributions/resources/contact-form/xslt/contact-form.xsl
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- src/contributions/resources/contact-form/xslt/contact-form.xsl (revisio=
n 28956)
+++ src/contributions/resources/contact-form/xslt/contact-form.xsl (working=
copy)
@@ -91,14 +91,28 @@
</xsl:for-each>
=
<tr>
- <td colspan=3D"2"> 
+ <td> </td>
+ <td>
+ <div id=3D"spamblock_hide">
+ <input name=3D"spamblock_hidden" type=3D"hidden" value=3D"TRyA=
g41n" />
+ <p>For spam detection purposes, please copy<br/> the number <s=
trong>8989890</strong> to the field below:</p>
+ <input name=3D"spamblock_input" id=3D"spamblock_input" tabinde=
x=3D"3" value=3D"" />
+ </div>
</td>
+ <script type=3D"text/javascript">
+ document.getElementById("spamblock_input").value =3D 8989890;
+ document.getElementById("spamblock_hide").style.display =3D "n=
one";
+ </script>
+ </tr>
+ <tr>
+ <td> </td>
<td>
<input type=3D"submit" name=3D"submit" value=3D"i18n:attr key=
=3Dsend"/>
</td>
</tr>
<tr>
- <td align=3D"right" valign=3D"top" class=3D"contentfield" colspa=
n=3D"3"><br/><i18n:message key=3D"requiredFields"/></td>
+ <td> </td>
+ <td valign=3D"top" class=3D"contentfield" colspan=3D"3"><br/><i1=
8n:message key=3D"requiredFields"/></td>
</tr>
</table>
</form>
More information about the Yanel-development
mailing list