簡體   English   中英

在C#源代碼中隱藏密碼

[英]Hide password in c# source code

我正在c#中使用以下代碼從我的網站下載文件:

WebClient webClient = new WebClient();
webClient.Credentials = new System.Net.NetworkCredential("username", "password");
webClient.DownloadFile("http://example.com/file.txt", "file.txt");

僅在滿足某些條件時才下載文件,所以我不希望用戶能夠訪問我網站上的文件

我的擔心是,如果有好奇心的用戶反編譯代碼,他將找到密碼並能夠訪問我網站上的所有文件。

我讀過一種保存密碼的安全方法是存儲其哈希,但是在此示例中我不知道如何實現。

我必須采取哪些選擇措施來保護密碼安全,並使用戶無法找到密碼?

令人震驚的現實:您不能像這樣保護程序中包含的信息。

必須做的:選擇用於訪問該單個程序所需的特殊文件的用戶名/密碼,而不是 “訪問我的整個網站”的用戶名和密碼。

但要知道,您正在做的只是在這里增加一點障礙。 任何想查看您的程序並找到用戶名和密碼的人。

唯一“正確”的方法是根據用戶自己的憑據進行操作。 例如,它們在您自己的系統中的用戶名和密碼。 然后,您需要根據這些信息為他們提供訪問權限,並且您的程序將需要提示他們進行訪問。

你根本不會。 用戶為您提供密碼即可執行操作,而不是相反。

如果用戶必須證明“某些條件”,則將這些條件的證明傳遞給服務器,然后讓服務器決定是否允許下載。

沒有辦法防止這種情況。 如果您的程序能夠在條件X下訪問文件,則無論如何,用戶都可以將程序欺騙到條件X並獲取文件。 您可以加倍努力,但絕不可能。

如果數據在程序本身中,則可以認為它們已經暴露給用戶。 如果憑據在用戶計算機上,而不管您采取了多少措施來解決此問題,那么總有可能找到解決方法。

您可以做的是為您的程序實現一個登錄表單,並為用戶提供登錄信息。 然后,當用戶輸入登錄信息時,請在服務器端檢查憑據是否存在(通常通過簽入數據庫),以及是否匹配,將文件發送給他們。

但是與往常一樣,用戶僅與他人共享登錄信息等存在問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM