发布/重定向/获取解决方案只是为了刷新页面?

时间:2014-01-30 18:02:32

标签: php back-button post-redirect-get

PHP Post / Redirect / Get解决方案只是用于刷新页面吗?

如果用户点击两次后退按钮并重新发送表单怎么办?我找到的唯一解决方案是检查我的数据库中是否已发布相同的数据。

在没有查询数据库的情况下还有其他解决方案吗?

提前谢谢!!!

2 个答案:

答案 0 :(得分:0)

因为HTTP的性质而使用PRG。 POST不是安全的操作,因此首选PRG。

答案 1 :(得分:0)

PRG非常适合浏览器后退按钮支持。 HTTP重定向替换浏览器历史记录中的URL,而不是添加新条目。 如果您始终如一地应用PRG,即您总是从POST返回重定向,那么浏览器历史记录将只包含“安全”页面(GET),历史记录中永远不会有POST URL。

但仍有可能获得重复的表单提交。例如,如果用户双击提交按钮。因此,如果你想要更加安全,你需要一些额外的机制(例如nonce)来防止双重提交。