2011-11-26 169 views
0
header("Location:post.php?id=120"); 

这是我现在用来在两页之间传递值的方法。 这不是一个安全的方法。 取而代之的是,我想使用“post”方法在重定向时发送值。 是否有任何等效的方式来在PHP中“发布”? 我正在寻找替代方法来做到这一点(因为不安全)PHP - 重定向到另一个页面

+1

POST不比GET更安全。你能否详细说明你的意思是“安全” - 确保什么/谁? –

+1

什么是不安全的?在URL中显示ID? –

+0

我不想显示在URL中的ID,在一个小的情况下,它可能没有关系,这是一个例子,但在我的代码我在一些私人数据,我如何确保它不会显示在URL中? – shafiqsnss

回答

-2

您可以存储在会话变量,然后使重定向(这是安全的方式)

或者使HTML重定向

<form method="post" action="post.php" name="redirection"> 
    <input type="hidden" name="id" value="120"/> 
</form> 
<script type="text/javascript"> 
$(document).ready(function(){document.forms.redirection.submit();}); 
</script> 
2

即使世界没有什么不安全约传球页面之间的ID。这实际上很常见,甚至在这里完成。

如果您非常担心用户看到该ID,为什么不将您的ID保存在会话变量中?这样更隐蔽一些。

0

要发送POST,也许最简单的做法是使用一个隐藏的输入字段来创建一个具有所需值的表单:<input type="hidden" name="id" value="120" />,然后将表单发布到post.php。当然,除非你做了一些验证,转义等,否则这不会比以前的方法更安全。

0

标准的“POST”请求并不比“GET”更安全。它只是隐藏参数/数据给用户,并给你一个安全的印象。您仍然需要检查逻辑中Id的有效性(ID是否有效?是授予访问此数据的用户?)。

可能是你可以尝试:

  • 创建令牌唯一的ID(?GUID)
  • 放 “身份证” 在服务器会话,与令牌作为标识符
  • 将用户重定向与header("Location:post.php?id=".$myToken);
  • 在“post.php中”,从服务器会话负载数据并销毁进入清理内存

用户仍然能够以查看数据(令牌),但该令牌将在页面加载后立即失效。

0

您是可能是正在寻找sessions
“很可能”,因为你的问题没有什么确定给你一个更相关的答案。

但是,您不应该使用会话来传递像id这样的变量,这显然可以标识目标页面。

0

使用JS发送AJAX中的发布请求。我很确定这就是你需要的...

相关问题