FoxHoneyPot
Questions answered by this recipe
How can I stop bots from submitting Fox forms, for forms which are accessible to the public?
Description
Add an input field acting as a honey pot for bots to a Fox form. If a bot posts anything into that field, the form submission aborts
Installation
Add the following to config.php, somewhere above where fox.php is included:
//foxhoneypot directive and filter function, set input a_password as hidden bot trap Markup('foxhoneypot','directives','/\\(:foxhoneypot:\\)/',"Fox_Honeypot"); function Fox_Honeypot() { $out = '<input type="hidden" name="foxfilter" value="pot" />'. '<input type="text" name="a_password" style="display:none !important" tabindex="-1" autocomplete="off">'; return Keep($out); } $FoxFilterFunctions['pot'] = 'Fox_Honeypot_Filter'; function Fox_Honeypot_Filter($pagename, $fx) { if (!empty($fx['a_password'])) FoxAbort($pagename, 'Are you a bot?'); return $fx; } |
Add to any Fox form this directive:
(:foxhoneypot:)
This adds to a Fox form an input field named 'a_password', which is not visible to a user, but may attract a bot to put something into. A hidden input field 'foxfilter' is added too. On submission it will be checked by a FoxFilter function, which will abort the submission if there is content in that field.
Change log / Release notes
- 2024-04-15: initial release
See also
Contributors
Comments
See discussion at FoxHoneyPot-Talk?
User notes? : If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.