CSRF保护不受诸如用户注册或添加注释之类的表单元素的攻击。创建CSRF是为了防止将表单值发送到我们的应用程序之外。为了解决这个问题, 我们以每种形式生成一个随机的随机数(令牌)。
我们在会话中添加令牌, 然后验证令牌。通过比较表单将数据回传到应用程序中, 并将其与会话提交的会话中的令牌存储到会话中。
例子
<?php echo Tag::form('session/login') ?>
<!-- Login and password inputs ... -->
<input type='hidden' name='<?php echo $this->security->getTokenKey() ?>'
value='<?php echo $this->security->getToken() ?>'/>
</form>
然后, 在控制器的操作中, 你可以检查CSRF令牌是否有效:
<?php
use Phalcon\Mvc\Controller;
class SessionController extends Controller
{
public function loginAction()
{
if ($this->request->isPost()) {
if ($this->security->checkToken()) {
// The token is OK
}
}
}
}
评论前必须登录!
注册