Symfony 1.4:表单中CSRF的自定义错误消息

Symfony 1.4:表单中CSRF的自定义错误消息,第1张

概述任何人都可以告诉我在Symfony 1.4中为表单定制CSRF令牌错误消息的位置/方式.我正在使用sfDoctrineGuard进行登录,特别是在会话用完且你仍然打开页面时,它会抛出一个非常用户不友好的错误:“检测到CSRF攻击”.类似“此会话已过期.请返回主页再试一次”听起来更好. 在表单类中执行此 *** 作的正确方法是什么? 谢谢. 唯一的方法似乎是覆盖sfForm :: addCSRFProtec 任何人都可以告诉我在Symfony 1.4中为表单定制CSRF令牌错误消息的位置/方式.我正在使用sfDoctrineGuard进行登录,特别是在会话用完且你仍然打开页面时,它会抛出一个非常用户不友好的错误:“检测到CSRF攻击”.类似“此会话已过期.请返回主页再试一次”听起来更好.

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

谢谢.

解决方法 唯一的方法似乎是覆盖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保护!

希望这可以帮助!

总结

以上是内存溢出为你收集整理的Symfony 1.4:表单中CSRF的自定义错误消息全部内容,希望文章能够帮你解决Symfony 1.4:表单中CSRF的自定义错误消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存