iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Security

從以卵擊石到堅若磐石之 Web API 安全性全攻略 系列

今年的系列文想跟大家分享如何打造一個高安全性的 API server,以及在實作 API 的商業邏輯時,有哪些該注意的眉眉角角。

除了講解概念之外,我也會用 Node.JS 跟 Go 寫一些範例,而其他語言的話因為概念都是相通的,所以只要看完文章、有了大觀念後,Google 一下就能查到怎麼實作,因此一樣可以讀這系列的文章~

鐵人鍊成 | 共 30 篇文章 | 76 人訂閱 訂閱系列文 RSS系列文 團隊StarBugs 星巴哥技術週刊
DAY 1

Day01-系列文介紹、規劃

前言 Hello 大家好我是 Larry,去年休息一次後今年決定再度參戰,這也是我第三次參加鐵人賽了。 雖然參加鐵人賽真的很痛苦,會有長達一個多月茶不思、飯不想...

DAY 2

Day02-入口管制(一)

前言 要打造安全的 API Server,第一步就是不要讓奇怪的資料跑進來,也就是要做 input validation 只要可以在一開始把奇怪的請求、資料給擋...

DAY 3

Day03-入口管制(二)

前言 昨天在講格式驗證的時候有提到 Node.js 的 validator 跟 Go 的 govalidator 有很多好用的功能可以用,像是幫你驗證 isEm...

DAY 4

Day04-入口管制(三)

前言 前兩天講完基本的格式、語義檢查後,今天特別來講一下關於 email 的部分 大部分網站希望使用者留下 email 一來是避免使用者大量註冊,二來是日後可以...

DAY 5

Day05-入口管制(四)

前言 前面幾天談的都是純文字的資料驗證,像是信箱、電話等等,但很多 API server 除了文字資料外也會提供上傳檔案、照片的功能,尤其現在那麼多電商一定會需...

DAY 6

Day06-流量限制(一)

前言 不管你的伺服器有多少 CPU、多大量的記憶體,每秒可以處理的請求數終究是有限的。為了避免資源被少數惡意使用者用完,造成阻斷服務攻擊(Denial Of S...

DAY 7

Day07-流量限制(二)

前言 昨天介紹了在 Node.js 跟 Go 裡面要怎麼用 middleware 來做限流,雖然看似方便,但這樣做其實不是個好方法,因為限制流量並不是業務邏輯的...

DAY 8

Day08-流量限制(三)

前言 昨天有講到怎麼運用 nginx 來做基本的分流、限流,但因為昨天舉的例子比較簡單,真實世界的應用可能會更複雜,所以今天要針對限流的部分講一些真實世界可能會...

DAY 9

Day09-流量限制(四)

前言 昨天 Day08 時有跟大家介紹 nginx limit_req 裡面的 burst 參數該怎麼使用,簡單來說就是用來設定 queue 的長度,若 que...

DAY 10

Day10-流量限制(五)

前言 前幾天終於把限制請求「數量」的部分講完了,但光是限制數量是不夠的,最好還能限制每個請求的大小,否則攻擊者只要發一些 body 很肥很肥的無用請求,一樣可以...