Keo*_*ges 3 php security cakephp email-confirmation
我开始在我的项目上开发用户注册.用户将通过电子邮件发送的链接确认他们的注册.
我以为我可以使用在表单上插入的电子邮件,加上随机的salt,并对这个连接的字符串进行散列,这样每个字符串令牌都是唯一的.链接将是这样的:
http://www.example.com/register/7ddf32e17a6ac5ce04a8ecbf782ca509
Run Code Online (Sandbox Code Playgroud)
我认为这很好,很容易构建,但我不确定它是否足够安全.
我正在使用CakePHP 2.7和SQL Server 2014开发这个项目.
这实际上取决于您如何生成MD5.确保您的数据是随机的.我不使用MD5来生成这些类型的哈希值,而是执行以下操作:
$email_token = openssl_random_pseudo_bytes(16);
$token = bin2hex($email_token);
Run Code Online (Sandbox Code Playgroud)
就个人而言,如果使用PHP7 ,我会选择使用random_bytes这样的东西.
$email_token = bin2hex(random_bytes($length));
Run Code Online (Sandbox Code Playgroud)
对于PHP5,可以使用polyfill:https://github.com/paragonie/random_compat