# unknown > | 變數 | 說明 | 範例 | |------|------|------| | `TELEGRAM_TOKEN` | Telegram Bot Token | `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11` | | `TELEGRAM_CHAT_ID` | 接收訊息的 Chat ID | `7711392074` | - Author: weiyongsheng1124 - Repository: weiyongsheng1124/MoltbotAP-security - Version: 20260201085908 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/weiyongsheng1124/MoltbotAP-security - Web: https://mule.run/skillshub/@@weiyongsheng1124/MoltbotAP-security~unknown:20260201085908 --- # Security News Skill *每日資安新聞訂閱機器人* --- ## 📋 功能說明 - 自動爬取各大資安新聞網站 - 支援中文與英文來源 - 每天早上 8:00 自動發送到 Telegram - 支援手動執行測試 --- ## 📰 新聞來源 ### 英文 | 名稱 | 網站 | 語言 | |------|------|------| | BleepingComputer | bleepingcomputer.com | 英文 | | The Hacker News | thehackernews.com | 英文 | | SecurityWeek | securityweek.com | 英文 | | Krebs on Security | krebsonsecurity.com | 英文 | | Dark Reading | darkreading.com | 英文 | | Threatpost | threatpost.com | 英文 | ### 中文 | 名稱 | 網站 | 語言 | |------|------|------| | iThome | ithome.com.tw | 繁體中文 | | T 客邦 | techbang.com | 繁體中文 | ### 漏洞通報 | 名稱 | 來源 | 格式 | |------|------|------| | CISA KEV | CISA JSON Feed | JSON | --- ## 🛠️ 安裝與執行 ```bash cd security-news npm install npm start # 啟動服務(會自動排程) node server.js # 測試模式:立即執行一次 ``` --- ## 🚀 Railway 部署 1. 建立新 Railway 專案 2. 連結 GitHub 倉庫 3. 設定環境變數: - `TELEGRAM_TOKEN` - Telegram Bot Token - `TELEGRAM_CHAT_ID` - 接收訊息的 Chat ID 4. 部署完成後自動每天 8:00 發送新聞 --- ## 📝 環境變數 | 變數 | 說明 | 範例 | |------|------|------| | `TELEGRAM_TOKEN` | Telegram Bot Token | `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11` | | `TELEGRAM_CHAT_ID` | 接收訊息的 Chat ID | `7711392074` | --- ## 🐛 常見問題 ### Q: 新聞沒有如期發送? A: 檢查 Railway 服務是否正常運行,以及環境變數是否正確設定。 ### Q: 如何手動測試? A: 在當地執行 `node server.js`,會立即爬取並發送新聞。 ### Q: 如何新增新聞來源? A: 在 `NEWS_SOURCES` 陣列中新增物件,參考現有格式。 --- ## 📊 程式結構 ``` security-news/ ├── server.js # 主程式(爬蟲 + 排程 + Telegram) ├── package.json # 依賴設定 ├── SKILL.md # 本文件 └── README.md # 專案說明 ``` --- ## 🔧 技術棧 - **axios** - HTTP 請求 - **cheerio** - HTML 解析 - **node-cron** - 排程任務 - **node-telegram-bot-api** - Telegram 通知 --- ## 🔐 CISA 漏洞通報整合 ### 資料來源 - URL: `https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json` - 格式:JSON - 更新頻率:CISA 持續更新 ### 輸出格式 - 每天自動發送最新 5 個 CVE 漏洞 - 包含: CVE ID、廠商/產品、漏洞名稱、发布日期、詳細資料連結 ### 程式碼結構 ```javascript // fetchCVEs() - 抓取 CISA JSON // formatCVEMessage() - 格式化 CVE 訊息 // sendTelegramCVEs() - 發送 CVE 通知 ``` --- ## 📌 Telegram 格式注意 ### 連結語法 - ❌ **錯誤**:markdown 語法 `[文字](網址)` → 會顯示為 undefined - ✅ **正確**:HTML 標籤 `網址` ### 屬性名稱統一 - ❌ **錯誤**:混用 `item.url` 和 `item.link` - ✅ **正確**:RSS 解析 → `parseRSS` → 物件用 `link` - ✅ **正確**:`extract` 函數必須回傳 `link: item.link` - ✅ **正確**:`formatNewsMessage` 使用 `item.link` ### 常見 Bug - `extract` 回傳 `{ url: item.link }` 但 `formatNewsMessage` 用 `item.link` → undefined - 修復:統一改成 `link: item.link` ```javascript // extract 正確範例 extract: (item) => ({ title: item.title, link: item.link, // 不是 url! source: 'News Source' }); // formatNewsMessage 正確範例 message += '🔗 ' + item.link + ''; ```