我想知道如何发送POST参数而不在html源代码中显示我的秘密数据。
<input type="hidden" name="url" value="$secretdata">
$secrerdata
必须以$_POST["url"]
的形式发送,但我想在服务器端发送。
答案 0 :(得分:3)
除非你永远不让数据到达客户端,否则这是不可能的。否则,“”秘密“”数据将始终对用户可见 - 通过拦截传输的数据或查看HTML源或通过查看JS源,如果您尝试使用JS隐藏它。
您可以做的是将数据存储在$_SESSION
阵列中,并通过第二页上的相同阵列访问它,而不是使用POST。当然,如果某些(不良)代码依赖于它在那里,你可以手动在$_POST
中为它分配一个字段。
另一个选项 - 如果由于某种原因无法使用会话,则仅 - 将使用用户不知道的密钥加密数据(即,仅用于服务器端代码。)
显然你也可以在你的PHP代码中发送一个POST请求(使用curl) - 但是请求不是来自用户的IP,而是取决于你想要做什么,这可能是个问题。
答案 1 :(得分:2)
我认为你真正需要的是一个会话。在那里,您可以存储仅由服务器处理并与特定用户相关联的数据。
为了使用它,您需要将session_start()
放在需要提供此数据的每个页面的开头。然后你可以使用
$_SESSION['yourkey'] = 'Something';
在此会话中存储数据。之后它甚至在其他页面上也可以$_SESSION['yourkey']
。