2012-01-03 86 views
0

我的問題是關於服務器端的信息,需要在客戶端進行檢索,但更具體地說,對於購物車。我學會了用純文本的方式來完成,但我不確定如何去隱藏數據庫中的內容。我做了一些研究,我發現有兩種選擇。如何隱藏您放入cookie中以供檢索的信息?

  1. 散列cookie中的任何內容,並在數據庫中保存散列版本以便進行比較。
  2. 加密,簽名,如果被篡改,由於缺少簽名,它將被忽略。 (不太清楚如何製作自己的加密文件)

這兩種方法都是大多數電子商務網站使用的,我應該使用什麼,或者是否有更廣泛使用的一種?

+0

你試圖把什麼信息放入cookie? – 2012-01-03 06:09:06

+0

你使用什麼服務器端語言和數據庫? – benesch 2012-01-03 06:10:51

+0

嗯,我肯定學會了永不放置敏感數據,所以我決定採取這種方法。我只會提供一個用戶名和產品信息,以便我跟蹤用戶在他/她的購物車中的內容。 – Andy 2012-01-03 06:11:41

回答

1

不要在cookie中放入任何不想由用戶控制的東西。該cookie受用戶的控制。基本上,不要相信cookie。如果您的設計強迫您信任cookie,請更改它。

1

我沒有一個電子商務網站,但這裏是我遵循一些有用的提示:

  1. 決不存儲在cookie中任何可能被用來危害您的網站的完整性/安全
  2. 只存儲對其他人完全無用的信息,但你。
  3. 想出一種方法來「掩飾」cookie中的數據。

下面是一個簡單的例子:假設您需要將用戶的名稱存儲在cookie中。首先不要存儲名稱,因爲這違反了第一條提示。相反,請創建一個用戶標識。僅僅創建一個用戶ID還不夠好,因爲這個數字仍然是一個重要的信息。爲了使數據完全無用於其他人,請將其僞裝。我的意思是這樣的:假設你的用戶ID是1234.而不是存儲1234,對它進行某種數學運算然後存儲它。爲了簡單起見,我們假設你將數字平方。現在,用戶標識是1522756,可能比您的實際用戶標識允許的數字更多,因此除了您之外,其他任何人都無法使用這些數據。爲了使數據再次有用,只需簡單地取數字的平方根即可。對於一個真實的場景,你可能希望執行一個更復雜的功能,只要確保你所做的任何操作都可以顛倒過來給出原始數字。

檢查以確保cookie未被篡改也是一個好主意。

+0

好點,但你提出的是我列出的兩種方法,當然略有不同。我可以創建自己的加密,但是使用MD5不太好?另外,我會檢查cookie是否被篡改?謝謝。 – Andy 2012-01-03 06:41:19

+0

MD5應該足夠了;然而,這取決於你正在哈希的數據。如果某人有權訪問散列,則可能會破譯,具體取決於原始數據的內容。如果你有興趣,可以看看彩虹桌。檢查篡改要困難得多。一個簡單的方法就是使數據的第一個或最後一個字符總是相同的。然後你的程序可以檢查該標誌是否存在,將其視爲「奇偶校驗位」。您可以將其與檢查器結合以確認字符數是否正確。這不是傻瓜證明,但它應該足夠。 – TehTechGuy 2012-01-03 06:59:00

+0

是的,我很害怕這個。謝謝您的意見。非常感謝。 – Andy 2012-01-03 07:12:21