如何发送没有隐藏元素的POST数据?

时间:2013-01-26 14:09:42

标签: php

我想知道如何发送POST参数而不在html源代码中显示我的秘密数据。

<input type="hidden" name="url" value="$secretdata">

$secrerdata必须以$_POST["url"]的形式发送,但我想在服务器端发送。

2 个答案:

答案 0 :(得分:3)

除非你永远不让数据到达客户端,否则这是不可能的。否则,“”秘密“”数据将始终对用户可见 - 通过拦截传输的数据或查看HTML源或通过查看JS源,如果您尝试使用JS隐藏它。

您可以做的是将数据存储在$_SESSION阵列中,并通过第二页上的相同阵列访问它,而不是使用POST。当然,如果某些(不良)代码依赖于它在那里,你可以手动在$_POST中为它分配一个字段。

另一个选项 - 如果由于某种原因无法使用会话,则 - 将使用用户不知道的密钥加密数据(即,仅用于服务器端代码。)

显然你也可以在你的PHP代码中发送一个POST请求(使用curl) - 但是请求不是来自用户的IP,而是取决于你想要做什么,这可能是个问题。

答案 1 :(得分:2)

我认为你真正需要的是一个会话。在那里,您可以存储仅由服务器处理并与特定用户相关联的数据。

为了使用它,您需要将session_start()放在需要提供此数据的每个页面的开头。然后你可以使用

$_SESSION['yourkey'] = 'Something';

在此会话中存储数据。之后它甚至在其他页面上也可以$_SESSION['yourkey']

您可以在official documentation

中找到有关会话的所有信息