来自POST方法的PHP就像GET一样

时间:2011-07-18 15:38:09

标签: php forms http post

  

可能重复:
  Back button re-submit form data ($_POST)

我知道出于安全原因,最好使用POST方法而不是GET。 无论如何,如果你有几个网页,并且你想在它们之间导航,如果你使用POST方法,如果你按te BACK或FORWARD按钮,你的浏览器将重新提交prevoious表单的数据。 有一种方法可以使用POST方法但是让用户在上一页或下一页之间导航而不重新提交数据? 我不知道是否

4 个答案:

答案 0 :(得分:2)

POST和GET之间没有安全性差异。如果您不想要重新提交问题。您应该遵循Redirect-After-Post模式。

编辑:

对于所有看到安全方面的差异的人。

  • 你可以通过纯文本中间的人(虽然没有https)嗅到其中任何一个
  • 您可以重新发送这两个请求
  • 您可以为这两种方法创建安全令牌
  • 唯一的区别是POST不会通过URL标识符公开信息。但攻击者也会检查源代码。

使用POST在数据库等中插入数据不是因为安全性。这是因为广泛使用的REST范例。但是在开发Web应用程序时,REST范例不是必须的。它就像你可以遵循其指导方针的任何标准,或者你不管它。

对于完全相同的主题,还有一篇不错的帖子,结果相同:Is either GET or POST more secure than the other?

答案 1 :(得分:0)

使用POST方法不一定比GET更安全。 为了在不同的页面之间浏览,例如?page = home是完全正常的,只要你在处理它之前检查输入。 我知道没有办法阻止浏览器要求重新发送数据,因为有充分的理由询问用户是否要再次发送它们。

答案 2 :(得分:0)

POST并不比GET好。如果你想做一个会在DB(写入)中进行更改的操作,POST会更合适。 GET是......从DB中获取内容(阅读)。因此,要在页面(和分页)之间导航,使用GET没有任何问题。

答案 3 :(得分:0)

在您的脚本中使用$_GET没有任何问题,只是不要根据GET请求插入数据,如果您显示使用GET的数据,请确保在输出之前htmlspecialchars();用户。