2012-09-30 68 views
2

我想用Silverlight代替WPF作爲客戶端和WCF作爲服務器。它會讓人感覺到嗎?用戶可以看到Silverlight代碼嗎?

我想我將有以下優點:

1)更便攜,因爲它的網絡。

2)我不需要驗證客戶端和服務器應用程序中的用戶輸入。

第三個優勢是我的主要問題:我猜用戶看不到我的代碼,所以我的應用程序對黑客是安全的。它是否正確?這意味着如果我在Silverlight中存儲數據庫連接字符串,沒有客戶端會看到它,對吧?

謝謝。

+1

更便攜... Windows計算機 – Serge

+2

@Serge之間:不,它也運行在Mac上(通過MS官方支持)和Linux(在一定程度上與月光)。 –

+0

@ H.B。 :在iOS上? MacOS你的意思。 –

回答

3

您的Silverlight應用程序打包的.xap文件只是一個包含應用程序DLL的歸檔文件(將其重命名爲.zip並親自查看),因此您的代碼仍可由任何下載該文件的人反編譯。 XAP。

至於你的第二點,你應該在服務器上驗證。例如,我可以嗅探流量並查看您的應用程序調用WCF Web服務。從那裏,我可以在不使用您的應用程序的情況下自行向您的服務提出請求如果你不驗證服務器端會發生不好的事情。另外,Silverlight的「可移植性」是有爭議的,但是我猜測它比.exe更具可移植性。

+0

謝謝!我不知道! – Seva

2

1)更便攜,因爲它是Web。

更便攜:是的,但僅限於SL範圍。

2)我不需要驗證客戶端和服務器應用程序中的用戶輸入。

驗證:在服務器上始終重複客戶端驗證。無論您在客戶端使用什麼,都不要相信它。

我猜用戶看不到我的代碼,所以我的應用程序對黑客是安全的。它是否正確?

不,非常不如此。黑客仍然可以檢查和反彙編你的代碼。

這意味着如果我在Silverlight中存儲數據庫連接字符串,沒有客戶端會看到它,對吧?

不,根據上述。但SilverLight並沒有多少用於數據庫連接字符串......
SL沒有ADO.NET庫afaik。也許這個「SL完全信任」可以使用它們,但我懷疑它。

+0

謝謝!我不知道! – Seva

1

該組件可容易進行提取和反編譯還你永遠不會知道,一個請求來自您的應用程序,如果它運行在客戶端上,以便甚至不認爲約跳過服務器驗證。

+0

謝謝!我不知道! – Seva

2

1)更便攜,因爲它的網絡。

那麼你必須在這裏定義「web」的含義。它不會在iOS(使用Safari)或Android設備或其他可能的設備上工作(除非我錯過了某些內容)。它不像「純粹的HTML5應用程序」是「網絡」那樣是「網絡」。

2)我不需要驗證客戶端和服務器應用程序中的用戶輸入。

只有當服務器能夠「知道」輸入真的來自客戶端時,這纔是真實的。如果這只是一個Web請求,它可以由任何東西發佈。根據我的經驗,您應該始終在服務器上驗證 - 客戶端驗證有助於使用戶更輕鬆;服務器端驗證是要真正實施業務規則。

第三個優勢是我的主要問題:我想用戶不能看到我的代碼,所以我的應用是針對黑客攻擊。它是否正確?

號的代碼在用戶的機器上運行;它將被下載,並可以像其他.NET程序集一樣進行反編譯。

+0

@ H.B:你確定嗎?不是MacOSX?我應該指出:「沒有安裝單獨的瀏覽器」 - 所以我想我的意思是「在iOS上的Safari」,這是大多數消費者將使用的。將編輯。 –

+0

正如問題所指出的,我的意思。那麼,無論如何,你的主要觀點都是可移植的,但仍然不如基於HTML的應用程序。 –

+0

謝謝!我不知道! – Seva

相關問題