iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 10
1

Day02 | 整齊的程式,讓看的人長命百歲,給我用 ESLint,我自己後來都用 prettier + eslint 這個組合,prettier 幫你自動管理 style,eslint 則去抓一些可以更好的寫法。

好處就是從此不用再糾結要用 tab 還是空白,要加分號還是不加分號,斷行要怎麼斷排版要怎麼版,都交給 prettier 決定就好,討論這些的時間就可以省下來做更重要的事。

DAY13-fetch和promise還有await抓抓資料裡面提到:

這邊要講的不是async await的await,而是svelte 的語法await,透過這語法可以幫忙解析promise物件

往下看發現 svelte 的 template 語法有支援 await,好潮

Day13 前端如何管理 API (中)- Cookie、CORS 、CSRF,想補充的有兩點,先問大家一個問題:

假設有個「非同源又沒有設定 CORS」的 API 是用 GET 去刪除文章,例如說 GET http://another-domain.com/delete_article?id=5 就可以把 id 是 5 的文章刪掉。今天如果我在 http://aaa.com 利用 ajax 去呼叫這個 API,可以成功刪除文章嗎?

.
.
.
.
.
.
防雷一下
.
.
.
.
.
.

最常見的錯誤答案就是:「不行,因為有同源政策,所以 API 會被擋下來」。

正解是:可以,但前端那邊不知道是否成功刪除。

因為同源政策擋的是 response 不是 request。不然你換個方式想就知道了,如果 request 沒有發出去,瀏覽器怎麼知道有沒有設定 CORS header?所以 request 一定會發出去,然後一定會拿到 response,只是瀏覽器把這個 response 擋住不讓你拿。

這也是為什麼要有 preflight request,因為 preflight 都是針對那些「會改動到資源」的方法(PUT/DELETE/PATCH...),才會需要先發 preflight 去驗證這是合法的,才幫你把真的 request 發出去。

第二個想補充的是 CSRF 有一個比較方便擋的方式 SameSite cookie,根據這篇文章,Chrome 在未來的版本會自動把 SameSite cookie 變成預設,你的網站就自動會有防止 CSRF 的功能。

最後,今天多發現了兩個系列可以關注:我搶到旗子了!30天CTF入門裡面提到的那個系統 picoCTF 好酷,以後可以推坑學生去玩;動態規劃百題之經典、理論與實作全部都是講 DP,好棒,應該會有一堆 DP 經典題,滿期待背包問題會怎麼講。


今天想說去市區晃晃,順便吃吃看倫敦海底撈,我大概三點半到那邊的,想說這時間應該沒什麼人吧。

結果我根本大錯特錯,人超級多,海底撈要排 50 幾組,根本就是瘋了...然後那一區也超級無敵多人,我一看到人潮立刻就後悔假日進市區了...我決定明天一整天除了去超市買午餐加晚餐,我不要進市區,我待在房間裡面乖乖魯就好,以此避開人潮。

附上一張證明今天有出門的照片:

https://ithelp.ithome.com.tw/upload/images/20190915/20091346K4Iaf9W8FQ.jpg


上一篇
後設鐵人 Day9:哈囉倫敦
下一篇
後設鐵人 Day11:我愛英國超市
系列文
後設鐵人:我從其他鐵人們身上學到的事30

1 則留言

0
神Q超人
iT邦新手 1 級 ‧ 2019-09-15 14:48:32

感覺 prettier 非常方便,再找時間來試試看 /images/emoticon/emoticon13.gif

我要留言

立即登入留言