批次檔執行單行 PowerShell 指令之內嵌雙引號字元處理
想將 "TIME:$(Get-Date -Format HH:mm)" | Add-Content "$(Get-Date -Format yyyyMMdd).txt" 當成 PowerShell.exe -Command 參數放在 .bat 檔執行,卡了老半... Read More
View ArticleHTTP Host Header 資安弱點
同事分享資安知識一則:在網頁引用 Host Header 可能形成資安弱點,給予攻擊者操作重新導向或引用惡意程式的機會。特筆記備忘。 使用 IIS + ASP.NET 示範如下: <%@Page Language="C#"%> <html> <... Read More
View ArticleIIS ARR (Application Request Routing) 安裝 (2023 版)
這幾年蠻常用 IIS ARR 架 Reverse Proxy 或做網址重新導向(應用範例:在 ASP.NET MVC 站台使用 IIS ARR、HTTP Host Header 資安弱點防護),由於常需在隔離環境離線安裝,我找到最簡便的做法是下載四合一組合包 Application Request ... Read More
View Article.NET 小技巧 - 讀取其他程式開啟中的檔案
寫了個小工具偷看網站即時 Log,配合 NLog 使用時正常,但遇到 log4net Log 會出現「The process cannot access the file 'xxxx.log' because it is being used by another process.」錯誤。(註:手邊... Read More
View Article古蹟維護雜記 - ODP.NET 元件註冊 SOP
Oracle Client 版本問題像鬼魂般揮之不去,x86/x64、11.2/12.1...,歷經多年糾纏,現在遇到 .NET 要連 Oracle,我一律力推改用 Managed ODP.NET。 但老系統多如牛毛,老鳥都知道「If it works, don't touch it!」是有益身心健... Read More
View Article【茶包射手日記】SSH 無法連線:Incorrect Signature
嘗試 SSH 連線某台 Unix 主機時出現 Incorrect Signature 錯誤: 該主機歷史悠久,使用者眾,理論上不該存在無法 SSH 連線問題,所以我優先懷疑是自己客戶端有問題。這種狀況的 SOP 是找對照組比較,我的 SSH 客戶端依據玩 USB 實體金鑰的心得,是用 Win32-... Read More
View ArticleAI 小書僮 - Edge 瀏覽器之網頁 / PDF 自動摘要
這波 AI 熱潮,大家最先想到的都是 ChatGPT。微軟身為 OpenAI 主要投資者,有近水樓台之便,也在加速將 AI 整合到自家產品,除了讓人期待但仍在封測的 Office 365 Copilot (正式名稱為 Microsoft 356 Copilot,但我想 Office Copilot ... Read More
View ArticlePowerShell 練習 - JSON 物件陣列差異比對
之前寫過比對兩個 JSON 物件陣列差異的 .NET 小工具,用來對照多哪幾筆、少哪幾筆,哪幾筆的哪幾個欄位不同。這回場景類似,但要改用 PowerShell 實現,當成暖身練習。 先準備測試資料如下,故意讓 src.json 與 dst.json 二者有一筆新增、一筆缺少、一筆相同、一筆欄位值不同... Read More
View Article用 Github 追 Code - GPG 日期亂碼是怎麼來的?
在 Windows 使用 GPG 加解密及簽章,一般建議用 Gpg4Win,版本較新支援度較好,但有個小問題是 Gpg4Win 所附的 gpg 2.4.3 版,在中文版 Windows 的日期時間顯示會出現亂碼: Git for Windows 或 Cmder 附的 gpg 2.2.29 版就沒這... Read More
View ArticleJS 非同步作業串接之 jQuery 與香草寫法 ft. Github Copilot
維護古蹟過程遇到要串接多個非同步作業的需求,例如:Warn()、UpdateConfirm() 與 CallApi() 為非同步作業(詢問使用者確認或取消、呼叫 WebAPI),函式有點年紀故傳回的是 jQuery Promise,我要做到 Warn() 確定才呼叫 UpdateConfirm(),... Read More
View ArticleNULL 排序問題 - ORACLE / MSSQL / SQLite 行為整理
今天學習到新知識 - 資料表欄位進行排序時,遇到 NULL 會怎麼辦?茲針對我平時較會遇到的資料庫:ORACLE、MSSQL 及 SQLite 做個整理。 我弄了一個模擬資料表,用 CorpName, StartDate, EndDate 記錄工作履歷: 查詢條件為「仍在職者(離職日為 NULL)... Read More
View ArticleANSI 顏色控制碼 - 讓 Console 輸出五彩繽紛
學生時代玩 BBS,曾學過在純文字模式讓文字變色的小密技,但工作後開發程式以網頁、WinForm/WPF 為主,這項能力漸漸從腦中退去。這兩年愛上 CLI,寫 Console Application、PowerShell 的機會變多,重新擁抱終端機純文字模式,是時侯重拾往日技能惹。 這個技巧的學名叫... Read More
View ArticleCoding4Fun - CRC 檢查碼除法演算
CRC 檢查碼我們每天都在用,Ethernet 乙太網路的每個封包(Frame)後方有個 FCS (Frame Check Sequence),可以用來偵測傳輸過程有沒有 0 變成 1、1 變成 0 的錯誤。其使用的演算法為 Cyclic Redundancy Check 循環冗餘校驗,簡稱 CRC... Read More
View Article演算法作業好朋友 - BigInteger
日常 .NET 程式開發,若要處理超大數字,ulong 可到 18,446,744,073,709,551,615 (64位元),若還不夠,decimal 支援範圍從 ±1.0 x 1028 to ±7.9228 x 1028,精確度為 28-29 位,對一般應用已如天文數字,足以應付各式需求。 但... Read More
View Article【茶包射手日記】IIS 管理員看不到 ARR Cache 圖示之謎
用 IIS ARR 架 Reverse Proxy 已經好幾年,雖然運作正常,但有個問題始終困擾著我,我一直找不到傳說中有個「Application Request Routing Cache」圖示: 網路上看過有人跟我一樣抱怨找不到,起初我覺得是 ARR 太老舊跟 Windows 2016+ 相... Read More
View Article.NET 連 HTTPS 網站「基礎連接已關閉」之 Windows 版本問題
幫忙查問題遇到第三次,依慣例已達專門為它寫篇文章的門檻。 案例一,.NET 呼叫 URL,在本機測試 OK,移至目標主機後程式冒出「基礎連接已關閉」錯誤(詳細訊息在下面),這個錯誤最典型的原因是 .NET 未啟用 TLS1.2 支援,但確認程式有明確指定 TLS 1.2;同一時間,該主機上另有 Py... Read More
View ArticleNode.js 之 localhost / 127.0.0.1 解析問題
踩到一個 Node.js 小問題,用一小段程式重現。 簡單的 HTTP 客戶端測試,一人分飾兩角,預設為伺服器模式,利用內建 http 模組 Bind 127.0.0.1 9527 Port 跑一個簡單的伺服器(永遠回傳 Hello World);若帶入參數 client,則使用 fetch 呼叫 ... Read More
View ArticleIIS ARR Reverse Proxy 出現 ERR_CONNECTION_RESET 錯誤
嘗試用 IIS ARR 當 Reverse Proxy 重導 PRTG 服務管理網頁,發現僅 HTML 可正常讀取,網頁所需的 png 及 css 發生 ERR_CONNECTION_RESET 錯誤。 ARR 的狀態有點尷尬,2013 年更新 3.0 後幾乎就沒再更新了,網路查到的資料很多還停在... Read More
View ArticleCoding4Fun - 打造個人專屬 ChatGPT 聊天室 (Azure OpenAI Service 版)
上回提過 Azure 有提供 OpenAI Service,與 OpenAI API 相比,具有 SLA 保證、多區域備援、AD 整合、虛擬網路整合、更符合企業規範... 等特色。而對個人用戶,若手上有 Azure 免費額度(例如:Visual Studio Enterprise 訂閱 150 US... Read More
View ArticleLinux 新手筆記 - 新增磁碟機、CLI 指令輸入 Tab 字元、輸出轉存管理者限定檔案
脫離熟悉的作業系統是個有趣體驗,原本憑直覺用膝蓋就能完成的小動作,換到陌生環境如同參加 110 米跨欄。雖然靠經驗多半很快找到答案(作業系統不同概念大同小異),但得不停跨腿跳躍,動作不順會停頓或摔倒,得集中精神應對。 在 Azure 開 Linux VM,我主要都拿來做小實驗,用 VM 預設系統碟 ... Read More
View Article