4

是否有任何HTTP標頭或元標籤可用於避免將URL導入瀏覽器歷史記錄?不要在歷史中保存URL,任何標題或元標記?

例如,我不想

http://domain.td/show/super-secret-unique-token-that-is-private 

在瀏覽器地址欄中顯示的,當我開始打字「domain.t」。

目前我在網站上有一個(POST)搜索表單來加載令牌,但他們沒有出現。但後來我想通過鏈接加載令牌,比如我們說一張專輯。

回答

0

決定使用我保存在瀏覽器會話中的地圖。通過這種方式,我可以傳遞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; 
    } 
} 
2

我不認爲你可以。

您可以將令牌保存爲Cookie,或將其用作GET參數,但每隔15分鐘左右過期(並在每次頁面加載時重新生成一個新的參數)。同時檢查相同的用戶代理,如果你想下去IP路由,IP地址(但它可以給出誤報,我不會推薦它)。

+0

或者使用ajax,可能。 – zaf 2010-07-05 10:26:42

+0

是的,我可能只是在會話中保存一個「鏈接圖」。將唯一令牌保存在具有唯一生成的密鑰的數組中。然後只需通過URL傳遞唯一生成的密鑰。這樣,如果不是相同的會話,該URL將是虛假​​的。 – Phliplip 2010-07-05 10:32:39

+0

想到我自己的解決方案後,我認爲這是要走的路。這也可以解決我目前的一些其他問題:)感謝您讓我的想法朝着正確的方向發展! – Phliplip 2010-07-05 10:39:48

相關問題