iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
Modern Web

用 Node.js 打造後端 API系列 第 25

Day 25 - API安全性2

  • 分享至 

  • xImage
  •  

前言


今天要來完成:

  • Rate Limiting, 防止clients make過多requests癱瘓server
  • HPP&CORS, 讓使用者能取得存取其他來源(網域)伺服器特定資源權限的機制
    以及防止駭客pollute http param

Rate Limiting


先下載express-rate-limit package
接著來設置client在特定時間能發送的requests數量

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 min
  max: 100 // requests數量
});
app.use(limiter);

使用者在15分鐘內只能make 100個requests

HPP&CORS


Express在array中populate具有相同名稱的http parameters
駭客可以透過此機制pollute request parameters
先下載hpp package

app.use(hpp());

跨來源資源共用(Cross-Origin Resource Sharing (CORS))
是一種使用額外HTTP標頭令目前瀏覽網站的使用者代理 (en-US)
取得存取其他來源(網域)伺服器特定資源權限的機制
當使用者代理請求一個不是目前文件來源——
例如來自於不同網域(domain)、通訊協定(protocol)或通訊埠(port)的資源時
會建立一個跨來源 HTTP 請求(cross-origin HTTP request)
所以需下載cors middleware

app.use(cors());

參考資料:跨來源資源共用(CORS), https://developer.mozilla.org/zh-TW/docs/Web/HTTP/CORS


上一篇
Day 24 - API安全性
下一篇
Day 26 - 生成API文件
系列文
用 Node.js 打造後端 API30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言