前言
有些系統會在畫面上加上浮水印以避免資料被使用者列出外洩出去,作法可以參考 [ASP.NET]建立有浮水印的網頁 。
另外可以在畫面上多輸出一個亂數值,而這個亂數值是可以代表這個使用者的。
最簡單的就是使用 XOR 的方式。
實作
1 | /// <summary> |
所以假設有個功能代號為 Func000001, 使用者 TDD123 及 使用者 CII456 , XOR 出來的值分別為 12312A52020364747400 及 053C2757050673797905 .
而這2個流水號並不會讓使用者認為是他們的代號。
但如果這份資料洩漏出去,就可以拿那些 流水號 與 功能代號 做一次的 XOR 就可以知道是那個使用者 洩漏出去的。 程式如下,
1 | var funId = "Func000001"; |
可以從上面的範例發現,原本的資料與 XOR 過的資料再做一次 XOR ,就可以知道原本的使用者代號。
註:
- 如果網頁浮水印怕被使用者透過 F12 把它去掉的話,可以設一個 Timer ,每幾秒就再設定浮水印一次,這樣即使透過工具拿掉後,又會再呈現出來。
- 上述的功能代號也可以轉成是機敏的資料,只要有 XOR 過的資料,就可以回追原本的使用者。