2016-04-28 68 views
1

好吧,所以我有這個連接到數據庫的C#應用​​程序有登錄和所有的東西,但如果一些人剛剛下載一個反編譯器看到我的代碼從我的數據庫中獲取連接字符串,做了他想做的事情? 我該如何保護自己?即使我可以保護我的連接字符串,我如何保護我的代碼?如何從反編譯器保護我的.net應用程序?

+1

可能的複製(http://stackoverflow.com/questions/36423030/obfuscation-in-xamarin-projects) – SushiHangover

+1

你不能。真。如果計算機可以執行它,那麼計算機可以正確解釋它,因此人們也可以用正確的工具解釋它。 – Nyerguds

+0

閱讀鏈接的副本.... – SushiHangover

回答

2

您絕對不應該在您的組件中存儲關鍵信息,正是因爲這個原因。混淆信息的方式有很多,但它們只是推遲了不可避免的。

記住:安全通過隱藏的是不是安全

  • 訪問在服務器端應用程序中的數據,並把它傳遞給認證的客戶機來代替。
  • 限制的數據庫用戶帳戶要求的最小權限(如果你只需要讀取信息 - 確保它沒有寫訪問等)
+0

這個。從這個問題說,它似乎是一個桌面應用程序直接連接到異地數據庫。這本身就非常不安全;數據庫應該使用僅支持調用以允許應用程序執行的確切操作的服務。 – Nyerguds

-2

您應該將連接字符串存儲在您的應用程序.config或web.config文件。

+0

如果他們有權訪問代碼,他們可以訪問配置,但實際上並沒有什麼幫助。 – ChrisBint

+0

你總是可以加密web.config https://msdn.microsoft.com/en-us/library/bb986855.aspx –

+0

對於那些投票的答案:https://msdn.microsoft.com/en-us /library/ms254494(v=vs.110).aspx –

0

連接字符串可以在配置文件中

Connection Strings and Configuration Files

加密然而,你不能真正保護那些需要查看它做什麼人你的代碼,你只能使它更難被混淆。

我想補充一點,正確的安全模型可能會限制對物理文件和數據庫'數據'的訪問,但這取決於您的部署模型。

+0

如何爲downvote添加一些上下文 – ChrisBint

1

但是如果一些傢伙剛剛下載了一個反編譯器,看到我的代碼從我的數據庫中獲取了連接字符串並做了他感覺的事情?我該如何保護自己?

這是一種恥辱,不是嗎?您只能做幾件事:

  • 使用VPS($$)並在線存儲您的代碼的登錄部分。您可以使用LiteCode,這裏是教程:https://github.com/debug-hf/LiteCode-Example/
  • 使用混淆器可避免反編譯器和黑客查看您的代碼。迄今爲止最好的是http://netguard.io。它包括免費計劃,所有的優質計劃都得到充分保證。你所有的字符串都被加密,融化,並祕密存儲在文件中。着名的deobfuscator,如De4Dot無法處理它,即使它處理或多或少每個混淆器在市場上!

希望它能幫助:)乾杯

[在Xamarin項目混淆]的
+0

感謝m8虐待嘗試 –