2016-09-17 43 views
0

好的,所以我創建了一個具有登錄表單的c#win表單程序,該登錄表單使用我的網站上的基本API作爲登錄驗證(通過HTTPS提供)的主機。正在使用API​​進行登錄驗證安全

因此,例如,這裏是一些代碼

WebClient wb = new WebClient(); 
    wb.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.33 Safari/537.36"); 
    String response = wb.DownloadString("https://www.example.com?username="+userName+"&password="+password); 
    if(response == "1") 
    { 
     //logged in 
    } 

我只是woundering是否安全就像我在我的例子一樣使用API​​的登錄驗證..感謝您閱讀

+1

什麼是登錄保護?如果它只是訪問winforms應用程序,則不;這並不安全。有人可以通過更改主機文件,使用代理或其他方法攔截請求,並讓它返回任何他們想要的結果。 – TZHX

回答

1

如果 API擁有爲已認證的用戶執行任務,這很好。

也就是說,窗體應用程序只是一個輕量級客戶端,但所有需要身份驗證和特定授權級別的操作都歸API所有。這意味着如果沒有有效的令牌或類似的API,就會拒絕嘗試。

請勿使用查詢字符串參數進行身份驗證,但應始終使用HTTPS安全地通過API進行身份驗證,並確保敏感信息隱藏在帖子的消息正文中。

查詢字符串參數在傳輸過程中將被加密且不可見,但在此處放置敏感信息只是一種不好的做法。特別是密碼。不要忘記,當他們點擊另一端的服務器時,URL是明文的,這樣它就可以通過相關的Web服務器管道(如IIS)來處理。這意味着它們也會在日誌和其他區域中可見。