「從攻擊手法開始重新認識網路」是一個新的系列文,比起從頭開始講起某個東西如何運作,我會直接先從攻擊手法開始切入,從這點去探討這個攻擊是怎麼做到的,又該如何防禦。
帶著這些問題去閱讀文章,可以更有意識地去理解現在要學的是什麼,待會看到的東西又是為了解決什麼問題。比起平鋪直敘的講解名詞,「從一開始就帶著問題閱讀」是我更想嘗試的方式。
這篇會聊聊 DNS 的運作原理、攻擊手法以及相對應的解法,話不多說直接開始。
「從攻擊手法開始重新認識網路」是一個新的系列文,比起從頭開始講起某個東西如何運作,我會直接先從攻擊手法開始切入,從這點去探討這個攻擊是怎麼做到的,又該如何防禦。
帶著這些問題去閱讀文章,可以更有意識地去理解現在要學的是什麼,待會看到的東西又是為了解決什麼問題。比起平鋪直敘的講解名詞,「從一開始就帶著問題閱讀」是我更想嘗試的方式。
這篇會聊聊 DNS 的運作原理、攻擊手法以及相對應的解法,話不多說直接開始。
2026 年 5 月 19 日,拿來做圖表的套件 antv 遭到攻擊,最新版本被植入惡意程式。
5 月 13 日,前端圈很熱門的 TanStack 系列 repo 也遭到攻擊。
4 月 1 日,每週有一億次下載的 axios 也同樣被攻擊,被發布了惡意版本。
大概每隔一個月或甚至一週就會看到供應鏈攻擊的新聞,而被攻擊的對象也不只有 npm,Python 的 PyPI、.NET 的 NuGet、甚至是 Docker Hub 或是開發者在用的 VSCode extension,也全部都是目標。
在這個前提下,開發者該如何保護自己?
這篇主要來談談針對 npm 的供應鏈攻擊,先從原理開始聊起,接著來談談攻擊手法,以及防禦方式。
之前寫過一篇感謝 AI 讓我這外行人也能做簡單的逆向工程,描述了我怎麼結合 AI agent 跟 ghidra MCP,去逆向一個 Golang binary(stripped),就算結果有點小錯誤,但整體方向都是對的。
過了快兩個月,這中間我拿 AI 去逆向了更多東西,更多我以為 AI 逆不出來的東西,但 AI 狠狠地打了我的臉,我才是無知的那個。
這篇記錄一下 AI 能做到的事情,最後聊聊這件事讓我對 AI 的看法有了怎樣的改變。
最近碰到一個場合拿到了個 Golang HTTP server 的 binary,需要把它拆開進一步研究,找到通往下一步的線索。
但關於逆向工程這件事情,我是很陌生的。我只會把 binary 丟到 Ghidra 裡面,接著就什麼都不會了,我連搜尋字串都不會。
不過現在 AI agent 已經進化得很快了,只要工具運用得當,像我這種的逆向外行人,也能簡單靠 AI 做基礎的逆向工程,這篇就來記錄一下步驟。
先寫在前面,我拿到的跟這次示範的都是比較小的程式,如果是更大或更複雜的我也不知道能不能跑。我也不會覺得 AI 可以完全取代人原本需要做的部分,但鐵定能讓部分任務變得更輕鬆。
而像我這樣的外行人,原本能逆出的東西接近沒有,靠 AI 之後能給一些線索都好,就算是亂講的也有一些些參考價值,有總比沒有好嘛,亂講的我還能想辦法再去驗證。至於原本就會逆向的,我也不確定 AI 有沒有幫助,或者是他們會怎麼用,這個不在本篇的討論範圍。
前陣子去 JSDC 的線上前導活動分享了這個主題,想說既然都分享了,不如就寫篇文章好了。這篇文章的靈感來源以及內容其實都是來自於《JavaScript 重修就好》。當初寫書的時候就有參考 React 原始碼中的一些東西,這篇只是把原本分散在書中的各個 React 相關章節整理起來重寫一遍。
我覺得從這些開源專案的程式碼中學一些新的概念滿有趣的,畢竟這些很多人用的框架通常碰過的 bug 也越多,學到這些問題的解法以後,也可以再回去反思以前自己學過的東西。
這篇分成三個小章節:
開頭先聲明一下,雖然標題叫做「從 React 中學習 JavaScript 底層運作」,只有最後一個比較底層,第一個更是與底層沒什麼關係。只是我沒想到比這個更好的標題,因此就用這個了。
前陣子有個讀者分享給我他自己做的 Chrome extension:JP NEWS Helper,能夠摘要、翻譯 NHK News Easy 上面的文章,幫助學日文。
由於這個擴充套件是開源的,因此我第一件好奇的事就是:「它是用哪一間 AI 的服務,key 怎麼處理?」,結果看了 source code 才發現居然是 Chrome 內建的 Web API,不是我以為的 HTTP API。
算是有點後知後覺,現在才發現原來有內建的 Web API 可以用,因此寫篇文章簡單記錄一下。
前陣子收到一封讀者來信,問我能不能寫一篇來講解 XSS without parentheses and semi-colons 這篇文章,說是這裡面的 payload 看不太懂。
因此,這篇就來簡單講解一下這些 payload,參考的原文是 Gareth Heyes 的這兩篇文章:
身為每天都要與網頁打交道的前端工程師,熟悉 DevTools 的使用是相當合理的。每當接 API 出問題時,就按下快捷鍵打開 DevTools,切到 Network 分頁,找到紅色的那一行,右鍵複製成 cURL 貼到群組裡面,讓後端自己找找問題。
但不曉得大家有沒有碰過 DevTools 不夠用的狀況,這時該怎麼辦?
應該不少人都有跟到三週前 VS Code 上的知名套件 Material Theme 被微軟主動下架的新聞,那下架的理由是什麼呢?根據你得知這件事的消息來源以及自身個性,可能會有兩種回答:
為什麼跟自身個性有關呢?因為就算消息來源接收到的是第一種,在種種條件的互相加持影響之下,你也很有可能解釋成第二種。