2010-08-18 43 views
3

有沒有辦法來爲用戶生成一個唯一的裁判?也許是基於機器ID,CPU /主板或其他任何可以通過網頁從服務器端訪問的東西?有沒有去產生在C#中唯一的機器哈希

我想看看是否我創建基於機器上,而不需要一個cookie一種標識的。

+1

你是什麼意思,「從一個網頁」?你的意思是ASP.NET中的服務器端?或者客戶端使用JavaScript? – 2010-08-18 13:28:28

+0

服務器端,只是不確定它是否可能。 – TheAlbear 2010-08-18 13:32:14

+0

使用cookie [15個字符]。 – 2010-08-18 13:34:58

回答

5

如果你覺得這個只使用網絡服務器的代碼或JavaScript客戶端的代碼,那麼你已經找到了應該儘快進行修補瀏覽器中的安全漏洞。按照設計,瀏覽器限制發送到服務器或暴露給腳本的信息。

您可以使用Cookie,讓用戶運行一些其他的代碼(可以使用閃光燈餅乾等),或在類似Panopticlick看(這是幾乎沒有100%可靠)或BrowserSpy

1

您也許能夠從BrowserSpy蒐集的一些方法。

1

網頁永遠不會訪問計算機硬件。你需要一個程序在本地機器上運行(java,C++,c#..),並且完全信任它來訪問這個資源。也許你也可以使用簽名的applet或ocx控件,但大多數用戶不會接受這一點。

瀏覽器向用戶一樣代理,語言,已安裝的插件和IP地址的服務器中的信息是你的唯一信息。不過,它們並不保證是獨一無二的。

+0

是的,那是我的想法。無賴.. – TheAlbear 2010-08-18 13:36:15

1

答案是「不一定」。 Javascript並不直接提供您需要的任何信息,我認爲您需要問自己爲什麼需要這些信息。

也就是說,對於IE而言,您可以構建一個ActiveX對象,它抓取必要的信息並將其傳遞給javascript。雖然不會與其他瀏覽器/操作系統兼容。請參閱文章here以查看將處理器詳細信息轉換爲javascript的示例。