Cymetrics Tech Blog

隱藏在 React 下的機制: Fiber

在尚未使用 Fiber 前,由於畫面更新前須由 reconciler ( React ) 調度完後才會送到 renderer,且當畫面複雜時,更動一個 state 狀態時也需要將底下的所有子元件重新 render 出一份 virtual dom,而在過去這個部分全部只由一個主線程去做同步式渲染,因此當有一個 Component 需要費時較多時間時,將會把主線程 block,當時間一長,就有可能導致來不及更新至指定時間範圍內,造成無法順利渲染,會有不順暢的情況發生。

零基礎資安系列(三)-網站安全三本柱(Secure & SameSite & HttpOnly)

# 前言保護 Cookie守衛網站安全的三本柱有不同的職責和能力Secure 表示:我不會讓 Cookie去任何危險的地方!HttpOnly 表示:只要有我在的地方 別想找到 Cookie!SameSite 表示:所有和 Cookie 來源不同的請求都別想成功!

來談談 AOP (Aspect-Oriented Programming) 的精神與各種主流實現模式的差異

這篇文章會先討論 AOP 的行為本質,並剖析 Java 語言中 AOP 實現的幾種模式,並且比較彼此之間的行為。

零基礎資安系列(二)-認識 XSS(Cross-Site Scripting)

# 前言你=User 陌生人=Hacker 菜單=Request 桌號=cookie 老闆=web server想像你到一家餐廳吃飯,陌生人在有你桌號的菜單備註寫上無敵大辣,接著你沒有發現便直接把菜單送給老闆,然後老闆就送來了一份加了無敵大辣的餐點 ,這就是 XSS 的基礎概念。

零基礎資安系列(一)-認識 CSRF(Cross Site Request Forgery)

# 前言陌生人= Hacker 菜單 = Request桌號= cookie 註1 老闆= web server 你 = User想像你到一家餐廳吃飯,陌生人拿了一張有你桌號的菜單點餐之後給老闆,結果老闆問也不問便收了菜單並將帳記到了你的身上,這就是 CSRF 的基礎概念。

防止 XSS 可能比想像中困難

前陣子我剛從公司內轉到一個做資安的團隊 Cymetrics,在對一些網站做研究的時候發現了一個現成的案例,因此這篇就以這個現成的案例來說明怎樣叫做錯誤的設定,而這個設定又會帶來什麼樣的影響。

比較 Java 和 Golang 在撰寫併發時處理共享變數的差異

在寫 concurrency 程式時,通常會用 lock、synchronized 等機制保護存取共享資源的程式片段,確保一次只有一個 thread 可以使用這些共享資源。但若是共享資源不是一個程式片段而僅僅只是一個變數,使用 lock、synchronized 等機制就會顯得太笨重,甚至拖慢效能。

從編譯器優化角度初探 Javascript的V8 引擎

這篇文章想以V8引擎對於JS的實現為例來探討編譯器優化的一些基礎議題並搭配實驗,希望能讓讀者對於血汗的編譯器到底在背後幫我們完成了多少事情有點概念。