go 官方的漏洞檢查工具(govulncheck)

Go security team 發表了 Vulnerability Management for Go 官方的漏洞管理掃描工具。 其中一個 govulncheck client 工具,可以針對二進位(binary)或程式原始碼(code base)掃描產生 call stack。 以官方維護的Go vulnerability database 儲存已知跟社群回報的漏洞(CVEs and GHSAs), 背後的 Schema 以OSV, Open Source Vulnerability format v1.3 格式儲存跟封包傳輸, 所以開發者事實上可以寫自己的 HTTP GET API(參考) 搭配 Go 官方釋出的OSV Json Parser 就可以開發自己的檢測工具,不然用現成的就好。 # For source code $ govulncheck ./... # For Binary $ govulncheck $HOME/go/bin/my-go-program 試掃 grabit 漏洞 來試掃之前寫的 side project 股票: grabit[changelog], 執行以後出現 7 個漏洞,都是golang 原生的 xml, encoding, http, 有明確的行數與解釋等資訊,如下...

2022-09-15 · 4 分鐘 · Randy IN tech grabit

[grabit] 功能清單

使用了一陣子,也修了不少bug,大概就先這樣子用看看,比較喜歡這樣一頁式地顯示全部資訊。 ( 其他資訊查詢APP的設計傾向單一屬性資料單一頁面,雖然顯示單一資料比較美觀,但是點來點去真的會忘記剛剛看了什麼, 這也是我想DIY的驅動之一 ) grabit changelog v0.8.0 個股趨勢圖(同頁面顯示) 下列圖示以電子級溶劑勝ㄧ(1773)為例,所有的趨勢圖是在同一個頁面顯示不需另開分頁, 這樣有個好處是不用點選跳轉到其他頁面後,就忘了之前看的感覺。 技術線圖: 單月營益率、月營收成長率、長短期營收年增率、長短期營收平均值: EPS(元)、ROE/ROA、利潤比率 - 季報、年報 : 流速動比率-季報、年報 : 全部個股篩選比較 可以用一些常用指標勾選來過濾個股,並顯示該個股的摘要財務與常用數據。 自訂分類標籤 自訂標籤顯示出來的表格結果跟篩選比較的表格是一樣的,差異只在是自定義標籤分類。

爬蟲控制頁與排程

cron tasks 有些具有可預測大約日期範圍的抓取,設為排程工作,避免沒事就去爬蟲頁面檢查點擊。 // 每天15:10(日線) cronTasks.AddFunc("30,50 15 * * *", func() { cronhome.MADaily(app) }) cronTasks.AddFunc("30,50 18 * * Fri,Sun", func() { cronhome.MAWeekly(app) }) cronTasks.AddFunc("30,40 13 * * Sat", func() { cronhome.MAMonthly(app) }) // 月營收: 每個月 1~18 日, every day between 1st and 15th lastMonth := now.AddDate(0, -1, 0) cronTasks.AddFunc("30 5,7,8,15,16,17,21,22,23 1-18 * ?", func() { cronhome.Revenue(app, lastMonth) }) // 今年公佈的股利 cronTasks.AddFunc("10 8,15,18,21 * * *", func() { cronhome....

爬蟲 - 開不開 Goroutines ?

因為想要練習寫 golang,在找不到題目的狀態下,剛好買了台 Mac-Mini M1 無法開卷商的 APP,想來想去乾脆直接就來寫一個自己使用. 目標 抓取個股月營收 解析網頁 寫入資料庫 比較數據 (開不開 Goroutines) 月營收爬蟲 Single Thread 17xx 間公司的月營收約 1 年份的數據筆數是 20,828 筆,抓取到寫入資料庫約 7.55 秒,不會掛點(被對方拒絕) 開 Goroutines 7倍效能,一定要開的啊 ! 數據筆數: 20,828 筆(1年份) 抓取到寫入資料庫約 1.1 秒完成 (Multi Thread) 把筆數拉大到 113,694 筆,約 48.58s (Single Thread) 開了 Goroutines 約 2.8s ~ 4.8s (Multi Threads) 開了 Goroutines 以後,週一到五比較沒問題,常會被遠方中斷,直到改成批次爬, 每一梯次只開 80 ~ 100 的 threads 完成之後再換下一個梯次, 這樣改法變得穩定多了,只剩下週六日會動不動就被擋下來, 要有完整被檔後再繼續爬不被拒絕的寫法這一點以後有空要研究一下。

開發 GrabIt 動機

因為想要練習寫 golang,在找不到題目的狀態下,剛好買了台 Mac-Mini M1 無法開卷商的 APP,想來想去乾脆直接就來寫一個自己使用. 目標 可根據財報/營收/均線/產業篩選條件篩選出想要的個股 可定義標籤做分類 可看個股過去表現 開發環境 Angular v12+ Tailwind CSS v2.2.4+ golang v1.16.6+ postgreSQL v13+