在header()中发送POST参数


Send POST parameters in header()?

我正在制作一个注册页面,注册。php,基本上我想要做的是检查错误,如果没有,重定向到注册。php。这很好,但register.php是实际帐户的页面(例如mySQL查询)。当然,为了做到这一点,我需要从注册。php中收集的参数。我想知道我是否可以做这样的事情……

    header("Location: register.php, TYPE: POST, PARAMS: {user,pass,email}")

显然我不能使用$_GET,因为我正在传输敏感数据(例如密码)。

意见/建议吗?

编辑:谢谢大家的回答。我现在将参数存储在$_SESSION变量中。

我看不出这种重定向有什么意义。

为什么不马上发布到register.php?
然后检查错误并将数据保存在相同的register.php数据库中?
没有任何重定向

不可以,这样的数据对于任何有决心的攻击者来说都是不安全的。

将数据存储在会话变量中以供下一页使用

即使这是可能的,您也会碰到另一堵墙——流行浏览器中重定向的实现。虽然标准要求询问用户帖子是否被重定向,但所有流行的浏览器都简单地将重定向解释为GET。简而言之:您不能以这种方式重定向POST,您必须找到另一种不需要往返客户端的方法,或者使用GET。

此外,您应该意识到,除非您的请求是通过https完成的,否则GET和POST都将向任何侦听器提供敏感信息,因为POST只是将查询字符串放入http请求而不是url。在安全性方面,两者是相同的。

您可以将它们存储在$_SESSION中,并在register.php页面中引用它们,做一些检查以确保有人实际填写了信息,而不是只是导航到它。