江中喬

江中喬

AuthN、AuthZ、Audit:後端最難的不是 CRUD,是把權限講清楚
Backend

AuthN、AuthZ、Audit:後端最難的不是 CRUD,是把權限講清楚

後端工程有個很不浪漫的事實:真正的大魔王通常不是效能,也不是資料庫,而是 3A: * AuthN(認證):你是誰 * AuthZ(授權):你能做什麼 * Auditing(審計):你做了什麼、何時做的、能不能追溯 只要這三個沒搞清楚,你的服務很容易就變成在網路上裸奔。 ## 為什麼「只靠 API Key」很常翻車 很多 API 為了方便,直接用一組 API key 當門票。 它的問題不是不好用,而是它的安全語義太弱: 1. 它通常代表的是「某個程式/某個 client」 你知道是某個 app 在呼叫,但你不知道背後是誰在操作。 2. 它是靜態憑證 外流一次就很麻煩: * 很難追到是誰拿走的 * 很難做到細粒度撤銷 * 也很難做行為歸因 3. 把權限切到每個使用者的 key
3 min read
AI Agent 越來越強,但你的 MCP 架構扛得住嗎?
AI

AI Agent 越來越強,但你的 MCP 架構扛得住嗎?

最近看到 Google Cloud Tech 談 MCP(Model Context Protocol)安全的影片,裡面有一句話我很認同:當模型開始有「手腳」,你要治理的就不只是模型輸出,而是整個行動鏈。 https://www.youtube.com/watch?v=qGCdbAn0nk8 很多團隊把 MCP 當成「讓 LLM 連接外部工具的標準介面」。工程上它確實很漂亮:代理(Agent)負責決策,MCP Server 負責執行工具操作。但安全上,它等於把攻擊面從「文字」擴大成「能改你系統狀態的一連串動作」。 這篇我用實務角度整理 MCP 架構常見的四類風險,跟一套比較像工程的防線設計:縱深防禦(Defense in Depth)。 ## MCP 的核心風險:
4 min read
看完《AI Agents Fundamentals》後我更確定:PM 的戰場從介面轉向信任
Agent

看完《AI Agents Fundamentals》後我更確定:PM 的戰場從介面轉向信任

最近讀了 Tina Huang 的《AI Agents Fundamentals》整理,裡面有幾個觀察很值得 PM 反覆咀嚼。 https://www.youtube.com/watch?v=qU3fmidNbJE 我不想把它寫成「五點筆記」,而是想把它翻成一個更接地氣的問題: 當產品從「讓人操作」變成「讓 AI 代替人操作」,你還在設計什麼? 答案很可能不再是按鈕、流程與頁面,而是:工作流、決策與信任。 ## 1)循環勝過規模:產品價值會落在「自我修正」能力 很多人第一反應是追求更大的模型。 但在 agent 系統裡,真正能提升穩定度的,往往是「循環」: * 先做一版 * 自己檢查 * 根據錯誤修正 * 再輸出 這其實是把工程裡的
3 min read
「講清楚了,卻還是做錯」:需求溝通最常見的問題其實是知識的詛咒
產品管理

「講清楚了,卻還是做錯」:需求溝通最常見的問題其實是知識的詛咒

你一定看過這種需求對話: * RD:「文件沒寫啊。」 * PM/使用者:「這不是理所當然嗎?」 兩邊都沒說謊。 真正的問題通常也不是能力,而是知識的詛咒(Curse of Knowledge):你越熟某個領域,就越容易把自己的背景知識當成「大家都知道」。 於是你自以為講清楚了,對方卻在另一套假設下把事情做完,最後變成重工與互相抱怨。 ## 需求不是「規則」,需求是「在真實情境下會發生的事」 很多需求文件一開始就想寫規則: * 這個功能應該要怎樣 * 這個流程必須要怎樣 * 這個欄位不可為空 問題是:規則背後藏著大量未寫出的假設。 而這些假設,往往就是錯誤的來源。 ## 解法:用例子把隱藏假設逼出來(Specification by Example) 實例化需求的思路很簡單: 不要先談抽象規則,先談「會發生的場景」。 把需求寫成三段: * Given:在什麼情境下(前置條件) * When:做了什麼操作(行為) * Then:會得到什麼結果(可驗收的輸出) 例子一攤開,
2 min read
人生沒有最佳解,只有收斂解:把自己當系統跑迭代
職涯

人生沒有最佳解,只有收斂解:把自己當系統跑迭代

「人生有沒有最佳解?」 如果你用工程師的腦子想這題,答案通常不好聽:在不確定性夠大的世界裡,最佳解多半不存在。 你能得到的,是一個經過測試、逐步收斂的解。 這不是悲觀,而是一種更務實的自由:你不需要在起跑前就把路徑想完,你只需要建立一個能持續迭代的系統。 ## 焦慮的來源:把人生當一次性考試 很多人的焦慮不是因為真的做不到,而是因為腦中有一個預設: * 我必須選到「正確的那條路」 * 一旦選錯就來不及 * 只要再多想一點就能找到完美方案 結果就是分析癱瘓。 你越想要一次到位,就越不敢開始。 ## 工程視角:腦袋裡的路線圖,都只是假設 當你設定目標,大腦會自動模擬出很多條路。 問題在於:那些路徑沒有經過環境測試。 它們不是計畫,它們是猜測。 在系統工程裡,你不會相信一個沒上線、沒跑負載、沒經過真實回饋的設計。 人生也一樣。 真正可靠的資料只有一種:把變數丟進市場或環境裡跑一次,看看回傳的數據是什麼。 ## 「一步登天」是錯的目標,「可複製的成功」才是 很多故事會讓人以為成功是瞬間爆發。 但你稍微把時間軸拉
3 min read
AI 信仰與資安失憶症:為什麼越理性的人,越容易在 Agent 上鬆手
AIAgent

AI 信仰與資安失憶症:為什麼越理性的人,越容易在 Agent 上鬆手

最近 AI Agent 工具爆紅,最有趣的現象不是功能,而是一種「集體失憶」。 幾年前我們還在教大家: * 不要亂點不明連結 * 看到怪信就刪 * 2FA 是底線 * 筆電相機孔要貼起來 * 電腦要裝防毒 結果現在突然變成: 「AI 可以全自動,好方便。」 「讓它自動開信、整理附件、爬網站、操作電腦、開鏡頭,沒問題吧?」 這轉變太快,快到很多平常很理性的人,開始呈現出一種近乎信仰的態度:只要有人提到風險,就像是在戳破他們對「強大 AI 助理」的想像。 ## 真正的矛盾:資安不是不知道,是選擇性忽略 我不相信今天談資安的人突然都不懂資安。 我更相信的是:當便利性足夠高,人類會自動把風險合理化。 * 「我只是開個 Gmail 給它看而已」 * 「它又不會亂寄信」 * 「它很聰明啦」 但你如果把句子裡的「AI」換成「陌生外包」或「
3 min read
Slopsquatting:AI 幻覺套件,把供應鏈攻擊變成複製貼上
資安

Slopsquatting:AI 幻覺套件,把供應鏈攻擊變成複製貼上

2026 年最危險的資安風險,常常不是駭客「硬打」進來。 更常見的是開發者在趕工時,照著 AI 建議把一段指令複製貼上,然後整條 CI/CD 就把惡意程式一路送進 production。 這類攻擊近期被稱為 Slopsquatting(AI 幻覺套件攻擊)。概念不複雜,但效果非常好,因為它利用的是你最常做的一件事:信任工具、加快交付。 ## Slopsquatting 在做什麼 這個攻擊模型可以拆成三步: 1. 你問 AI(ChatGPT / Copilot 等)「怎麼解某個問題」。 2. AI 在生成程式碼時,偶爾會捏造一個不存在的套件名稱(幻覺套件)。 3. 攻擊者盯著這些常見的幻覺名稱,搶先在 npm / PyPI 等開源社群註冊同名套件,塞入惡意代碼。 接下來就看人類的習慣:開發者把安裝指令貼進終端機、按下 Enter。 供應鏈攻擊就完成了。
3 min read
把「提示工程」當新英語,是搞錯重點:AI 時代教育該教的是驗證與責任
AI教育

把「提示工程」當新英語,是搞錯重點:AI 時代教育該教的是驗證與責任

最近有一種很常見的論述:政府如果把最新模型接進教育基礎設施,等於把「提示工程」變成新的「英語」。不跟上的學校,就是在培養上一世紀的勞工。 這段話很有煽動力,但我覺得它把焦點放錯了。 AI 進入教育的真正分水嶺,不在於學生會不會寫 prompt,而在於他們有沒有學會:如何在「可以快速生成」的世界裡,仍然能夠判斷、驗證、引用、並為結果負責。 ## 先講結論:prompt 不是新英語,它比較像新的搜尋框 把 prompt 形容成新英語,容易讓人誤以為: * 只要學會一些固定句型 * 只要懂得角色扮演與格式指令 * 你就能在 AI 時代取得競爭優勢 但實務上,prompt 更像「新的搜尋框」: * 你會不會把問題問對 * 你會不會在資訊堆裡抓重點 * 你會不會把答案拆開驗證 這些能力的核心不是語言,是思考。 ## 真正會拉開差距的,是這四種能力 ### 1)把問題拆成可驗證的子問題 AI 很擅長產出,
4 min read
為什麼「寫程式很強、寫作變無聊」:模型在能力取捨上的真相
AI工具

為什麼「寫程式很強、寫作變無聊」:模型在能力取捨上的真相

最近不少人都有同一種體感:某些新一代模型在「工程/推理/解題」上強得誇張,但拿來寫文案、寫故事、寫一段有溫度的文字時,卻變得更平、更保守、更像把句子排整齊的理工腦。 這種落差常被形容成「技能樹點歪了」。我覺得更精準的說法是:模型能力本來就不是單一維度,產品團隊做的其實是取捨。 ## 能力不是一條進度條,而是一張資源分配表 我們很容易把模型升級想成「各方面都更強」。 但在實務上,模型表現更像一張資源分配表: * 你把更多訓練與評測權重放在「推理、邏輯、一致性」,它在工程任務會更穩。 * 你把更多權重放在「語氣、修辭、敘事節奏、情緒共鳴」,它在寫作會更像人。 而要把兩邊都做到頂,成本與風險會一起上升:更難控的輸出、更多不可預期的風格漂移、更難一致的產品體驗。 ## 為什麼寫程式看起來進步特別快 寫程式任務有幾個天然優勢: 1. 驗證明確:能跑、能過測試、能重現。 2. 回饋快速:錯了會報錯,改一次就知道對不對。
3 min read
演算法真的比你更懂你嗎?把「洗腦」講得更精準一點
AI

演算法真的比你更懂你嗎?把「洗腦」講得更精準一點

很多人談到推薦系統或 AI 個人化時,會用一句話總結:演算法比你更懂你。 這句話有情緒張力,但如果要把它寫成一篇比較可靠的討論,我更想把問題講得精準一點: 當一個系統長期觀察你的行為,它確實可能建立一套「你會被什麼吸引、會被什麼激怒、會在什麼時候下決定」的模型。 這不等於它能讀心,也不等於你會被完全控制;但它足以影響你每天的注意力分配與資訊飲食。 ## 真正該怕的不是「魔法」,是「長期的微小推動」 影響一個人的想法,很少是一次性的劇烈改造。 更常見的是長期、細碎、近乎無感的改變: * 你看見哪些議題、看不見哪些議題 * 你被推送哪一種框架的敘事 * 你在情緒高點時接收到什麼內容 * 你被鼓勵加入哪些群體、排斥哪些人 如果系統的目標是「讓你停留更久、互動更多」,它自然會找到最能觸發你反應的內容。 而當這種「觸發」被做得足夠個人化,你就會開始覺得:這些內容好像特別懂我。 ## 從產品角度看,這其實是心理建模(psychological profiling) 不用把它講成陰謀論,它比較像一種高強度的行為模型: * 你點什麼、停留多久
3 min read