簡體   English   中英

如何隱藏數據庫表的外鍵關系或創建匿名條目?

[英]How can I hide the foreign key relationship of a database table or create anonymous entries?

是否可以在不顯式揭示其關系或所有者的情況下將關聯數據存儲在數據庫中? 本頁討論使用用戶信息的哈希值和密碼來識別事務所屬的用戶。 一些搜索沒有發現此安全功能的實現細節。

假設我的用戶的帳戶綁定了私有數據,那么我該如何做到這一點,以便可以訪問數據庫轉儲的人無法分辨哪些數據屬於哪個用戶?

它不是安全功能,而是設計模式(或者可以說是反模式)。 您鏈接的頁面描述了它們的實現方式:敏感信息與標識符一起存儲,該標識符無法在不交叉引用數據庫外部信息的情況下追溯到任何給定用戶。 在他們的示例中,它是密碼,當與其他帳戶信息結合並進行哈希處理時,該密碼將為該用戶的交易生成一致的ID。 為了正確地將用戶與其交易關聯,您需要原始密碼來重建哈希。 沒有密碼=沒有關聯。

這樣就可以了; 它犧牲了參照完整性,這就是為什么我稱其為反模式,但這就是整個想法。 更大的問題是它可能是最敏感的一點,因為無論何時用於生成散列的信息發生變化,都必須為用戶的所有交易更新散列。 缺少外鍵約束還允許沒有任何用戶的假交易。 從結構上來講,擁有一個與交易表具有適當外鍵關系的交易所有者的匿名表和將所有者實體鏈接到實際用戶的哈希表,在某種程度上會更安全。 這樣,敏感關系是一對一的,而不是一對多的,並且可以限制完整性故障的影響。

當然,這兩種方法都容易受到簡單的耐心和分析的影響-如果某人具有數據庫轉儲並且具有足夠的動機,那么只要綁定了事務,事務本身就足以了解誰創建了它們一致的用戶哈希或所有者。 一份披薩送貨費可能不算什么; 有幾個人將您帶到某人房屋的幾英里內。 您可以與匿名記錄關聯的信息越多,匿名記錄實際上就越少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM