Phalcon向开发人员提供了常见的安全任务, 例如:
- 密码哈希。
- 跨站点请求伪造保护(CSRF)。
密码哈希
这是一种将密码以加密形式存储在数据库中的技术。如果密码以纯文本格式存储, 那么任何有权访问数据库的入侵者都可以轻松查看密码。
为避免此问题, 密码哈希具有2种技术:
- md5:它将纯文本转换为32个字符的十六进制数字的哈希。
- sha1:它将纯文本转换为40个字符的十六进制数字的哈希。
例子
请参阅使用md5技术的密码哈希示例:
<?php
use Phalcon\Mvc\Controller;
class UsersController extends Controller
{
public function registerAction()
{
$user = new Users();
$login = $this->request->getPost('login');
$password = $this->request->getPost('password');
if ($user === false) {
$this->flash->error("Incorrect credentials");
return $this->dispatcher->forward(array(
'controller' => 'users', 'action' => 'index'
));
}
$this->session->set('auth', $user->id);
$this->flash->success("You've been successfully logged in");
$user->login = $login;
// Store the password hashed
$user->password = $this->security->hash($password);
$user->save();
}
}
输出
成功登录数据库后, 我们可以看到以哈希格式存储的密码:
评论前必须登录!
注册