【发布时间】:2016-04-26 08:59:46
【问题描述】:
我们可以轻松破解 ZF2 的 CSRF。如果我们删除连字符 (-) 之后的字符串,CsrfValidator 不会给出任何错误,并且令牌已成功提交。
例如CSRFtoken = 245454547kck-kjhjh2454dh编辑token后token = 245454547kck-ZF2成功提交表单,但是一定会报错。
谁能检查一下,如果有解决这个问题的方法,请告诉我。
对于上述场景,我们使用:
$csrfValidator = new CsrfValidator(array(
'name'=> 'token_name',//(here i used 'csrf' also)
'salt'=> 'test_salt',
));
$csrf = new CsrfElement('token_name');
$csrf->setCsrfValidator($csrfValidator);
$this->add($csrf);
$this->csrf = $csrf;
验证器:
$inputFilter->add(
$factory->createInput(array(
'name' => 'token_name',
'required' => true,
'validators' => array(
$this->csrf->getCsrfValidator()
)
))
);
请提供解决方案。
【问题讨论】:
标签: php zend-framework2 csrf csrf-protection zend-validate