Norman's Note 諾曼筆記

Norman's Note 諾曼筆記

Cookie 筆記

CSRF 開發時會遇到的問題

要拉 image 到 local 跑 local server 來測的原因:比較容易 reset db
但因為我們的 web server 跑 https 並指定一個網址,所以開發會遇到 csrf error 的問題:

  1. 不同 domain 沒辦法 set cookie,CSRF-TOKEN 送不過到後端
  2. http 不能設 https cookie,ACCESS-TOKEN 送不到前端
  • 可以用其他的指令例如 npm run dev:localserver 來把 API URL 改成 localhost:8001

--

Set-Cookie

HttpOnly

Forbids JavaScript from accessing the cookie, for example, through the Document.cookie property.
沒有設定的話,可以用 XSS 攻擊偷 cookie

Secure

  • Note: Insecure sites (http:) can't set cookies with the Secure attribute (since Chrome 52 and Firefox 52).
  • For Firefox, the https: requirements are ignored when the Secure attribute is set by localhost (since Firefox 75).
    意思是說:http 不能 set https 的 cookies,但 Firefox 為了讓你好開發(測試),幫你開了個通道,如果是 localhost 就可以 http 設 https

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#Secure

SameSite

前後端分離的作法常會需要處理非 same site 的狀況
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite

手動設定 (console)

document.cookie = "CSRF-TOKEN=test; path=/;"