Ruby on rails 轨道5-Can和x27;t验证CSRF令牌的真实性-仅有时

Ruby on rails 轨道5-Can和x27;t验证CSRF令牌的真实性-仅有时,ruby-on-rails,Ruby On Rails,我有一个Rails 5应用程序,正在使用表单提交数据。我正在使用CSRF保护,表单生成一个隐藏字段'authenticity\u token'。很好 但有时用户会收到错误信息,并且“无法验证CSRF令牌的真实性”。我想知道为什么会这样?我只能想象用户禁用了cookies。但是哪个普通的互联网用户会这样做呢?还有其他原因吗 我无法在我的计算机上重现此错误。所以我唯一的解决办法就是禁用CSRF保护,这并不是我真正想做的 有什么想法吗?无法验证CSRF令牌的真实性导致500内部服务器 我想知道为什么会

我有一个Rails 5应用程序,正在使用表单提交数据。我正在使用CSRF保护,表单生成一个隐藏字段
'authenticity\u token'
。很好

但有时用户会收到错误信息,并且“无法验证CSRF令牌的真实性”。我想知道为什么会这样?我只能想象用户禁用了cookies。但是哪个普通的互联网用户会这样做呢?还有其他原因吗

我无法在我的计算机上重现此错误。所以我唯一的解决办法就是禁用CSRF保护,这并不是我真正想做的


有什么想法吗?

无法验证CSRF令牌的真实性
导致
500内部服务器

我想知道为什么会这样?我只能想象用户禁用了cookies。但是哪个普通的互联网用户会这样做呢?还有其他原因吗

是的,这种情况经常发生。或者用户(或黑客)试图向端点发出API请求,但由于无法验证其将抛出此错误的真实性令牌。普通用户不会这样做,但可能有人重视他们的隐私,可能会关闭这些设置,或者他们想使用Tor浏览器等等。作为开发人员,我们所能做的就是尽力为最终用户提供最好的体验


因此,更好的做法是用一些自定义消息捕获
500内部服务器
错误,然后将其显示给最终用户,同时也向您自己发送
堆栈跟踪(松弛通知等),以便您可以处理关键问题


这样,如果从用户端来看一切都很好,这将正常工作。但是,如果有人禁用cookie(或导致某些错误的任何内容),您可以显示有关该问题的自定义消息。

无法验证CSRF令牌的真实性
会导致
500内部服务器

我想知道为什么会这样?我只能想象用户禁用了cookies。但是哪个普通的互联网用户会这样做呢?还有其他原因吗

是的,这种情况经常发生。或者用户(或黑客)试图向端点发出API请求,但由于无法验证其将抛出此错误的真实性令牌。普通用户不会这样做,但可能有人重视他们的隐私,可能会关闭这些设置,或者他们想使用Tor浏览器等等。作为开发人员,我们所能做的就是尽力为最终用户提供最好的体验


因此,更好的做法是用一些自定义消息捕获
500内部服务器
错误,然后将其显示给最终用户,同时也向您自己发送
堆栈跟踪(松弛通知等),以便您可以处理关键问题


这样,如果从用户端来看一切都很好,这将正常工作。但是,如果有人禁用cookie(或任何导致错误的内容),您可以显示有关此问题的自定义消息。

这是您在日志中或通过用户反馈发现的错误吗?不管怎样,都不应该禁用CSRF保护。它似乎在做它的工作…特别是考虑到你不能重现错误,而且它只是偶尔发生。在做任何事情之前,我会确保这些请求是有效的。用户向我报告错误,然后我去检查并在日志中找到错误。我确信用户没有试图攻击系统。这是一个预订平台,在报告错误后,用户离线预订。这就是为什么我知道他们实际上正在尝试在应用程序中预订。这是您在日志中或通过用户反馈发现的错误吗?不管怎样,都不应该禁用CSRF保护。它似乎在做它的工作…特别是考虑到你不能重现错误,而且它只是偶尔发生。在做任何事情之前,我会确保这些请求是有效的。用户向我报告错误,然后我去检查并在日志中找到错误。我确信用户没有试图攻击系统。这是一个预订平台,在报告错误后,用户离线预订。这就是为什么我知道他们实际上正在尝试在应用程序中预订。