2014-10-09 62 views
1

我有一個名爲Vouchers的集合。如果用戶知道憑證的唯一號碼ID,則可以「聲明」該憑證,該憑證會賦予其一個user_id屬性,將其綁定給他們。發佈其他用戶的ID是否存在內在風險?

我在一個點,我需要檢查一個用戶的ID查詢對現有的數據庫,但我想知道如果我可以這樣做在客戶端而不是服務器(客戶端會更方便,因爲我使用效用函數將查詢表單與數據庫操作綁定在一起......這是一個很長的故事)。如果我在客戶端上這樣做,我將不得不使用正確的user_id字段發佈整個憑證集合,儘管我不會通過任何模板顯示這些ID,但它們將通過控制檯提供。

發佈這樣的所有ID是否存在固有的風險?即使我沒有留下任何特定的漏洞供他們使用,他們是否可以被惡意使用?

回答

1

首先,一般來說,將所有user_ids發佈到客戶端似乎是個不錯的主意。如果你有100萬用戶會發生什麼?這將是很多數據。

其次,具體而言,我們不知道在發佈您的user_id時是否存在固有風險,因爲我們不知道您的系統中可以做些什麼。如果你使用用戶自己選擇的典型設計user_id(例如電子郵件),那麼即使攻擊者猜到了user_id,你也必須設計你的系統是安全的。

+0

那麼,我只會發布已經附加到一個優惠券的'user_id',所以它只會顯示已經註冊了一個用戶的ID,而不是整個用戶數據庫。 – blaineh 2014-10-09 20:43:33

+0

這個尺寸沒有什麼區別。即使是1000張優惠券,它開始效率低下。 – 2014-10-09 20:48:29

0

簡版:不太好的主意。

我有一個類似的設置:用戶可以註冊,如果她知道代金券代碼。您只能發佈user_id與登錄用戶相同的憑證。所有其他檢查如「用戶輸入是否對應於有效憑證?」必須在服務器上處理。

請記住:客戶端代碼是而不是可信。

相關問題