2011-11-26 171 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中的發佈請求。我很確定這就是你需要的...

相關問題