2

每隔一段时间,提交 PloneFormGen 表单(它发生在不同的表单上,所以没有特定的表单)会引发“表单验证器无效”异常。

我知道这是跨站点请求伪造 (CSRF) 保护正在关闭,但那到底是什么?

是什么触发了它以及如何防止它(因为,据我所知,所有触发提交都是有效的,所以不会发生伪造:-)

谢谢!

4

1 回答 1

8

为了防止来自其他来源的帖子,许多 Plone 表单,包括您尚未将其关闭的 PFG 表单,都包含一个加密令牌作为隐藏输入。该令牌必须存在于提交中,并且提交必须通过 HTTP POST。

当 CSRF 保护打开时,来自原始表单以外的任何其他来源的提交都会触发错误。如果一个用户加载了表单,然后在同一个浏览器中以另一个用户身份登录,您也可能会收到错误消息。或者,如果帖子被代理或浏览器插件转换为 GET。

您可以逐个表单关闭 PFG 中的 CSRF 检查。除非某些有价值的资源受到保护,否则 CSRF 检查并不是真正有用。

于 2011-03-25T15:33:39.520 回答