任何人都可以提出来对付对形式的垃圾邮件的最佳方法 - 我们已经有了到位的验证码,但垃圾邮件似乎仍然是越来越。
是否有可能下面......在表单检查如果POST请求来自从该网站提交的形式(和使用相同的动作不是一种形式)的事。 如果请求来自该网站是否接受,否则不&简单地忽略请求。
而且 - 是有可能做一些服务器端阻止DDOS式攻击 - 因为垃圾邮件发送者到我们的网站似乎在一段很短的空间,发送数以千计的请求。
任何人都可以建议笨(V2)任何其他良好的防垃圾邮件的方法并不妨碍用户太多。 提前致谢。
任何人都可以提出来对付对形式的垃圾邮件的最佳方法 - 我们已经有了到位的验证码,但垃圾邮件似乎仍然是越来越。
我喜欢的“蜜罐”技术。 基本上把一个隐藏字段的形式,用一个空值。 验证字段作为表单提交的一部分。 如果该字段=空 - !然后它是一个机器人,所以无法提交。 机器人往往只是自动的所有表单上填写字段。
是否有可能下面......在表单检查如果POST请求来自从该网站提交的形式(和使用相同的动作不是一种形式)的事。 如果请求来自该网站是否接受,否则不&简单地忽略请求。
是的 - 其所谓的CSRF - 笨有它建在打开它,在你的配置文件,并使用form_open()在窗体上。 而已
而且 - 是有可能做一些服务器端阻止DDOS式攻击 - 因为垃圾邮件发送者到我们的网站似乎在一段很短的空间,发送数以千计的请求。
是 - 把“最后提交”字段在会话为每个用户。 或IP。 不过还是要跟踪的垃圾邮件发送者。 在每个表单提交,检查最后提交的时间,如果是小于X秒(其中X是什么号码,你感到舒服 - 说,5秒) - 再失败的形式,由于它被提交过于频繁。
另一种选择是记录时,形式“服务”的用户,如果是要求X秒后也未能(即需要一个正常的人30秒填写表单 - SO 2秒意味着机器人)。
使用上述PS意味着你就可以删除该Captcha验证码:)
嗯,其实我已经有很多成功的一个非常简单的解决方案。
创建CSS类:
.magic /* Call it whatever you want
{
display: none;
}
插入这样的事情在你的表格:
<form method="post" action="">
<p>
<label>Name</label>
<input type="text" name="name">
<p>
<!-- and the magic -->
<p class="magic">
<input type="text" name="email"> <!-- spam bots LOVES 'email' fields ;) -->
</p>
<!-- /end magic -->
<p>
<label>Real E-mail input field</label>
<input type="text" name="some_email">
</p>
</form>
在你的控制器,你可以这样做:
...
public function create_post()
{
$this->form_validation... // If you use form validation
[...]
// If all regular validations are true, do the last bit
if( $this->input->post('email') == "" ) //If something is in the 'email' field, it has propbably been filled by a bot, because regular users can't see the field.
{
$this->your_model->insert_the_post($data);
}
// otherwise, pretend like nothing.
}
您的用户将永远不会看到这一点 - 这已经让我没有垃圾邮件的好几年了。 简单 - 但是有效。
最可能的话,你会放在字典或某种产品的话在你的验证码。 我有笨的垃圾邮件的同样的问题。 然后我把一些言辞激烈,像字母数字和所有。 它似乎是为我工作。 试试看。