是否有任何HTTP標頭或元標籤可用於避免將URL導入瀏覽器歷史記錄?不要在歷史中保存URL,任何標題或元標記?
例如,我不想
http://domain.td/show/super-secret-unique-token-that-is-private
在瀏覽器地址欄中顯示的,當我開始打字「domain.t」。
目前我在網站上有一個(POST)搜索表單來加載令牌,但他們沒有出現。但後來我想通過鏈接加載令牌,比如我們說一張專輯。
是否有任何HTTP標頭或元標籤可用於避免將URL導入瀏覽器歷史記錄?不要在歷史中保存URL,任何標題或元標記?
例如,我不想
http://domain.td/show/super-secret-unique-token-that-is-private
在瀏覽器地址欄中顯示的,當我開始打字「domain.t」。
目前我在網站上有一個(POST)搜索表單來加載令牌,但他們沒有出現。但後來我想通過鏈接加載令牌,比如我們說一張專輯。
決定使用我保存在瀏覽器會話中的地圖。通過這種方式,我可以傳遞URL的tokenKey throgh,然後返回變量。
我寫了這個Zend_Session_Namespace的擴展類,並添加了'add'和'get'函數。
<?php
class My_Session_Tokens extends Zend_Session_Namespace {
protected $_namespace = "Tokens";
public function __construct($namespace = 'Tokens', $singleInstance = false)
{
parent::__construct($namespace, $singleInstance);
}
public function add($token) {
if($tokenKey = $this->hasToken($token)) {
return $tokenKey;
}
do { $tokenKey = uniqid(); } while(isset($this->$tokenKey));
$this->$tokenKey = $token;
return $tokenKey;
}
public function get($tokenKey) {
if(isset($tokenKey)) {
return $this->$tokenKey;
}
return null;
}
public function hasToken($token) {
foreach($this as $key => $val) {
if($val === $token) return $key;
}
return false;
}
}
我不認爲你可以。
您可以將令牌保存爲Cookie,或將其用作GET參數,但每隔15分鐘左右過期(並在每次頁面加載時重新生成一個新的參數)。同時檢查相同的用戶代理,如果你想下去IP路由,IP地址(但它可以給出誤報,我不會推薦它)。
或者使用ajax,可能。 – zaf 2010-07-05 10:26:42
是的,我可能只是在會話中保存一個「鏈接圖」。將唯一令牌保存在具有唯一生成的密鑰的數組中。然後只需通過URL傳遞唯一生成的密鑰。這樣,如果不是相同的會話,該URL將是虛假的。 – Phliplip 2010-07-05 10:32:39
想到我自己的解決方案後,我認爲這是要走的路。這也可以解決我目前的一些其他問題:)感謝您讓我的想法朝着正確的方向發展! – Phliplip 2010-07-05 10:39:48