2014-04-29 49 views
0

我想以某種方式將我的應用程序(C#)的值(計數器)存儲在客戶機的計算機上,以至於他/她無法操作或重置它。我想將它並行存儲在數據庫(MSSQL),註冊表和文件中。如果有一個值丟失(刪除),我有兩個bakcup選項來恢復計數器。好的,如果用戶同時刪除所有三個值,則計數器重置爲零。這是我可以忍受的一個選擇。 但我不知道是否有任何其他的概念或最佳做法來存儲本地安全值...可能是我只使用了錯誤的搜索條件。任何提示? 非常感謝! Konrad將計數器值存儲在本地並且安全

+1

如果您不希望用戶能夠操縱某個特定的數據,那麼您需要將這些數據保存在您控制的計算機上(並且顯然不會爲用戶提供一種方法來詢問您的機器執行不良操作) –

+1

在客戶機上「安全地」存儲計數器的唯一方法是使用集成到機器中的efuses。即使那時烙鐵也能解決這個問題。可悲的事實是,這是「可信計算」問題。 – Aron

+0

操控不應該是不可能的,但是這樣做很難並且令人討厭每天執行兩次或更多次。 – Konrad

回答

1

沒有機會。

我在VMware映像中啓動您的應用程序,當我關閉它時所有更改都會恢復。在VM的重新啓動後,我有一臺從未見過應用程序(或計數器)的新機器。

即使您在多個地方存儲您的信息。如果所有這些計數器具有不同的值,哪一個會贏?

要獲得不可操作的計數器,您必須將它們存儲在您的服務器上,併爲您的客戶端應用程序提供一個API來讀取或增加該值。

+0

好的。這是關鍵。但至少數據庫運行在一個環境中,不能輕易恢復,因爲數據庫中存在高效且持續的數據,如果整個機器恢復到以前的狀態,數據庫將丟失。 – Konrad

相關問題