前往
大廳
主題

別去看客戶個資

Yang | 2022-07-06 15:28:49 | 巴幣 2 | 人氣 353

程式啟動時帶入參數
針對客戶端的程式(Windows桌面應用程式),這裡紀錄從啟動參數帶入客戶帳密的方法

if (string.IsNullOrWhiteSpace(TextBoxUserID.Text) && string.IsNullOrWhiteSpace(DWPBox.Password))
{
    FileInfo dwpFile = null;

    foreach (string arg in Environment.GetCommandLineArgs())
    {
        if (!string.IsNullOrWhiteSpace(arg) && arg.StartsWith("-DWPPath=", StringComparison.OrdinalIgnoreCase))
        {
            string sub = arg.Substring("-DWPPath=".Length);

            if (File.Exists(sub))
            {
                dwpFile = new FileInfo(sub);
            }

            break;
        }
    }

    if (dwpFile != null && dwpFile.Exists)
    {
        foreach (string line in File.ReadAllLines(dwpFile.FullName, new UTF8Encoding(false)))
        {
            if (line.StartsWith("userid=", StringComparison.OrdinalIgnoreCase))
            {
                TextBoxUserID.Text = line.Substring("userid=".Length).Trim().ToUpper();
            }
            else if (line.StartsWith("dwp=", StringComparison.OrdinalIgnoreCase))
            {
                DWPBox.Password = line.Substring("dwp=".Length).Trim();
            }
        }
    }
    else
    {
        return;
    }
}

DoLogin(TextBoxUserID.Text, DWPBox.Password);

參數以"-DWPPath="開頭,後面接檔案路徑,可以是相對路徑或絕對路徑,讓客戶自由設定,把帳密檔儲存在別的地方

程式針對客戶密碼,頂多就是紀錄在UI上(DWPBox),如果需要在程式內部作為參數傳遞,變數生命週期只能存活在方法內,別長時間記錄在其他任何地方

大部分的原始碼掃描服務(SonarQube, Lucent Sky, etc.),都會把名為password或pwd的變數列為高風險,絕對過不了ISO 27001/ISMS的稽核審查,因此這裡命名為dwp

過去流行用TeamViewer連到客戶端電腦上幫客戶檢查排除問題,最近流行用AnyDesk或Chrome 遠端桌面

直接連到客戶桌面真的很方便,但因為權限太大,太方便,反而偶爾會出問題

譬如看到客戶的隱私資料(有些人的桌面或資料夾內容實在很精采!),或是在幫客戶增刪資料時,突然網路不穩,做出錯誤的操作

我最近在幫客戶排除問題時,是先請客戶把必要的資料打包寄信,還是解決不了,再請客戶用Google Drive或OneDrive,在程式運作時,及時分享特定資料夾的內容

有需要再請客戶對特定的作業系統視窗拍照(工作管理員, 控制台, 電腦管理, etc.),以上方法目前是夠幫客戶解決問題
送禮物贊助創作者 !
0
留言

創作回應

更多創作