gpt4 book ai didi

forms - Symfony 1.4 : Custom error message for CSRF in forms

转载 作者:行者123 更新时间:2023-12-04 10:22:01 26 4
gpt4 key购买 nike

谁能告诉我在哪里/如何为 Symfony 1.4 中的表单自定义 CSRF token 错误消息。我正在使用 sfDoctrineGuard 进行登录,特别是在这种形式中,每当 session 用完而您仍然打开页面时,它会抛出一个对用户非常不友好的错误:“检测到 CSRF 攻击”。诸如“此 session 已过期。请返回主页并重试”之类的内容听起来更好。

在表单类中执行此操作的正确方法是什么?

谢谢。

最佳答案

唯一的方法似乎是覆盖 sfForm::addCSRFProtection() .

/lib/form/BaseForm.class.php你可以添加这段代码:

class BaseForm extends sfFormSymfony
{
public function addCSRFProtection($secret = null)
{
parent::addCSRFProtection($secret);
if (array_key_exists(self::$CSRFFieldName, $this->getValidatorSchema())) {
$this->getValidator(self::$CSRFFieldName)->setMessage('csrf_attack', 'This session has expired. Please return to the home page and try again.');
}
}
}

调用父方法后,检索与CSRF 字段关联的验证器并更改代码 csrf_attack 的消息。 .

编辑:您还需要检查验证器是否存在。某些表单可能禁用了 CSRF 保护!

希望这可以帮助!

关于forms - Symfony 1.4 : Custom error message for CSRF in forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com