Hero Image
[Security] 利用免費開源資安檢測軟體 SonarQube 檢測 .NET Core 程式碼

弱點掃描時常使用 owasp top 10 作為報告, 然而 owasp 軟體一年要價不菲,委外掃一次也是非常貴, 使用免費的 SonarQube 將弱點掃描整合到 CI/CD 階段, 要交付前再花錢委外掃一次似乎是個折衷的作法,避免一次檢測出來的弱點過多改動過大。 SonarQube 分為兩個部分 SonarQube Server、Scanner (Client 端程式)。 Scanner 負責進行掃描並將結果上傳 Server, 而 Server 作為負責處理和儲存分析報告的 compute engine 會分析上傳的結果, 並提供 Web 使用者介面、搜尋功能,因此分析完成後就可以直接在 Web 上查看報告, Scanner 除了能夠在 locale 端使用,還能直接整合到 CI/CD Server 上進行程式碼品質掃描。 雖說可以拿 localhost 直接作為 Server 使用, 這裡還是紀錄如何在虛擬機器上實際安裝 SonarQube, 以後在實際機器上安裝就可以作為參考, 準備 Linux Server 硬體 個人使用或小規模的團隊在一台機器上安裝就足夠使用了, 如果需要架設提供大量服務的伺服器,官網也提供 Cluster 的安裝方式方便做 Loading Balance。 這裡紀錄在一台 Ubuntu 20.04 上架設。 關於 Linux 安裝過程在這裡不加贅述, 官方提到硬體有幾個注意事項,對現代的硬體來說其實都還好,比較要注意的是硬碟空間: RAM 至少要 2G;free RAM 至少要 1G (所以用 Windows server 就要準備大很多喔)。 上傳報告需要一定的空間,因次對硬碟的空間與效能有一定的要求,不夠的話容易太慢。 server side 不支援 32-bit 作業系統;但 Scanner 可以支援 32-bit systems。 安裝 OpenJDK 11 sudo apt update sudo apt upgrade sudo apt install openjdk-11-jdk # 確認 java 版本 java --version 然後在 .bashrc 裡面把 Java 添加到 PATH 變數上。

Hero Image
[Web] 把電腦的難字造字檔用 FontForge 轉為字型放到網頁上使用

Web 在顯示姓名的時候常會遇到中文難字無法顯示, 此時開發者在本機端如果有安裝造字檔 EUDC.TTE 就可以轉為 woff、woff2、ttf 讓網頁正確顯示難字。 過程需要字型工具軟體 FontForge, 步驟如下: 拿到造字檔 EUDC.TTE 用 cmd 打開 regedit (win10 搜尋圖示點下後,輸入 cmd,出現小黑窗後再輸入 regedit) 找到機碼 HKEY_CURRENT_USER -> EUDC -> 950 資料夾下的 SystemDefaultEUDCFont 設定檔。 從設定檔的值就是 EUDC 的存放位址取出 EUDC.tte,我這裡是 C:\CIBEN\EUDC.tte 安裝 FontForge,找到 fontforge.exe 的位址 (注意,跟桌面捷徑呼叫的執行檔不一樣!),我的是在 C:/Program Files (x86)/FontForgeBuilds/bin/fontforge.exe 建立一個轉檔腳本 tte-extract.pe,內容如下 # Open EUDC TTE Open("EUDC.tte", 4) # CHANGE TTFNAME 2 EUDC SetTTFName(0x409,1,"EUDC") SetTTFName(0x409,2,"EUDC") SetTTFName(0x409,3,"EUDC") SetTTFName(0x409,4,"EUDC") SetTTFName(0x404,1,"EUDC") SetTTFName(0x404,2,"EUDC") SetTTFName(0x409,3,"") SetTTFName(0x404,4,"EUDC") SetFontNames("EUDC", "EUDC", "EUDC", "Regular", "655", "1.0.0") Generate("EUDC.ttf") Generate("EUDC.woff") Generate("EUDC.woff2") Close() 把 EUDC.tte、tte-extract放在同一個位址,在該目錄下用指令執行轉檔 (fontforge.exe 的位址可能需要修改): C:/Program\ Files\ \(x86\)/FontForgeBuilds/bin/fontforge.exe -script tte-extract.pe 得到的 woff、woff2、ttf 用 css 設定為網頁字形: 設定網頁字形 font-family: "EUDC"; font-style: normal; src: url('./fonts/EUDC.woff2') format('woff2'), url('./fonts/EUDC.woff') format('woff'), url('./fonts/EUDC.ttf') format('truetype'); } 套用網頁字形 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: '其他優先使用的字型', 'EUDC', sans-serif; font-display: auto; } 其他:讓 RDLC 可顯示字造難字 windows ttf 丟到 C:\Windows\Fonts,可能要重啟 IDE 才抓得到字型。 report 裡面的字型選擇 EUDC