Great stuff. Thanks.
re: ‘timeout’ I actually meant to say ‘sleep’ parameter – as you say.
re: ‘extra fields’ maybe some confusion – i didnt mean to suggest adding extra fields, but instead, a filter ie: in function kpg_load_all_check, around line 50-70 rearrange slightly to read eg: ::
...
$is_a_supported_field = ( array_key_exists('akismet_comment_nonce',$_POST) || array_key_exists('bbp_anonymous_email',$_POST) ||
... etc );
$is_a_supported_field = apply_filters('ssr_supported_field', $is_a_supported_field, $_POST);
if (!$is_a_supported_field) {
$_SESSION['kpg_stop_spammers_time']=time();
return;
}
...
– plus, similar constructs to set $em and $author variables just after that.
this way, if someone writes a plugin to say ‘upload_my_cv’ – then they can easily add full SSP support for any extra forms they use via a simple invocation of:
add_filter('ssr_supported_field', 'my_new_ssr_support_func', 1, 2);
function my_new_ssr_support_func($val, $post_arr) {
return( $val || array_key_exists('my_new_post_field_name',$post_arr));
}
( + similar filter calls for: ‘ssr_set_em’ and ‘ssr_set_author’ )
– and same can be achieved by theme writers by adding same to functions.php
(in fact dont even need to pass $_POST to the filters since its available globally anyway).
i think this will ultimatelyy reduce downstream maintenance effort associated with your plugin.
make sense?
re: checks on email addresses (vis a vis just ip’s) – please do KEEP the email checks as well – though separate options field would be helpful – since we do get some persistent ones – and in fact people rotate/change ip addresses via proxies just as much as they rotate email addresses – in my experience anyway.
re: overhead of big ip list – yep, agreed. but, so long as its only scanned upon forms POST, rare, relatively speaking, so a small price to pay i think (the remote akismet, SFS, honypot checks, etc are much slower by comparison).
Look forward to the next release.
All very best
Rob