2015-09-02 39 views
0

我正在我的網站上創建新聞Feed。我想要捕捉特定帖子上的喜好和評論。我的基本實現是,我提供post id作爲'like'按鈕的ID,它將調用一個方法在post_like映射表中添加一個條目。在新聞Feed中,如果用戶可以看到帖子的ID,那麼它是否安全?

但是方法/ webservice和帖子的ID在源代碼中對最終用戶是可見的。這可能會導致網絡釣魚攻擊等。我如何保護這些數據,以便用戶不能訪問任何其他帖子。

回答

0

如果你想避免鏈接僞造控制訪問,你需要某種類型的哈希的其他職位,而不是一個ID,一些解決方案可能是:

  • 使用同樣的伎倆電話卡等系列化卡做的時候,卡號是一個id與一個固定的數字位數的連接,一個隨機生成的密碼也有固定數量的數字。

    • 創建一個方法來生成一個唯一的散列並將其作爲一個字段存儲在同一個帖子的表中,然後將其用作參考而不是id。
0

如果你的ID不猜測的(即,如果它們是隨機從一個足夠大的數字空間,只有這個數字空間的一小部分是有效身份證件在任何給定的時間分配),你應該精細。順序ID當然可以很容易地通過觀察一個來猜測。

使用random (i.e. 'Version 4') UUIDs應該就足夠了。 (並且等價地,任何具有至少122位熵的隨機值也將如此。)

您可能還想要查看cross site request forgery prevention的相關主題。

0

您應妥善處理髮布視圖請求。 在您的PHP檢查中,每次單獨查看帖子時,該帖子是與特定或非登錄用戶共享的。

但是,這將是一個複雜的用戶基本上,你也可以使用長sha1md5加密和存儲該散列在一個單獨的列,你也可以使用crone作業及時更新哈希。因爲用戶不能通過使用一個帖子的散列來猜測其他帖子的散列,所以根據您當前的實現散列user_id並將它們存儲在數據庫中是個不錯的主意,您還可以在您的數據庫表中設置唯一的散列列。不需要解密哈希,因爲它們不可解密,您可以在處理類似請求和註釋請求時直接比較它們。

相關問題