2012-04-18 32 views
0

假設我想限制發佈請求以僅處理來自我自己的域的請求,我如何才能使用$ _SERVER ['HTTP_REFERER']來檢查引用者,我讀取的是($_SERVER documentation),可以不被信任?如何獲得真正的引用者?

+0

來自您自己的域的頁面會更新一個cookie,並留下頁面的標識。在頁面加載時檢查cookie中的值。也許你需要將它與當前會話聯繫起來。 – 2012-04-18 15:07:28

回答

2

這是不可能的,不幸的是,檢查引用鏈接的唯一方法是瀏覽器提供了這些信息,顯然這些信息可以改變以使讀者受益。

但是,您可以創建一個用戶會話或cookie來保存一個變量,以顯示該用戶訪問過該網站。如果該會話變量已定義,則只能允許用戶查看帖子。

另一種選擇是根據用戶的IP地址生成鏈接,只有當他們點擊了專門生成的鏈接時才允許訪問它們。您可以從數據庫中保存用戶IP地址和唯一密鑰開始,然後所有內部鏈接都可以使用具有唯一ID的GET變量。如果頁面打開時沒有真正的ID,那麼您可能會顯示一條錯誤消息。

1

如果它來自您自己的域名,您可以設置cookie或使用會話變量將用戶標記爲位於您的網站上。然後,如果發送提交,並且用戶缺少驗證值,則您知道可以拒絕該提交(或者如果它存在,則接受它)。

相關問題