PHP:保护帐户激活脚本免受滥用

时间:2014-07-22 20:13:26

标签: php database activation-codes

我为用户创建了一个PHP脚本,以便在他们点击确认链接后激活他们的帐户。它照常工作 - 用户点击链接

www.example.org/activation?code=R4nD0mCoD3

如果代码存在,脚本会检查数据库,如果不存在,则会将用户重定向到./index.php

那么人们不能将代码垃圾邮件发送到该网站并关闭我的数据库的最佳解决方案是什么?

有没有任何有用的工作?可悲的是,我还没能在StackOverflow中找到关于它的东西。

感谢您提供帮助:)

1 个答案:

答案 0 :(得分:1)

$key = sha1($email.time()); // 'email' or any other value

会给你一个40字符的密钥,它应该足够安全,但是如果你真的想阻止使用密钥选择任何一个请求,你可以返回一个带有提交按钮的视图(默认情况下禁用),然后启用在document.ready上的javascript,因为大多数机器人都没有启用javascript。

如果你走这条路线,你也可以在启用按钮之前设置1或2秒超时,这将减慢启用javascript的机器人。

如上所述,它只是一个简单的查询,因此只要您拥有安全的激活密钥,就不必担心太多。