How OTR (Off-the-Record) Messaging works
OTR stands for Off-the-Record Messaging, the OTR protocol was designed by cryptographers Ian Goldberg and Nikita Borisov and released on ...
System Design 101 - Polling vs Long-Polling vs WebSockets vs Server-Sent Events
### Polling client 持續不斷的 send http request to server,server 持續不斷的回傳 response 給 client ex: 每秒都 call API 問 server 有沒有新的 notification ##...
System Design 101 - Caching
Cache 就是把常用的資料先 copy 起來,有人需要的時候就直接把 copy 拿給他、節省時間的方式 ## Cache 的種類 ### 1. Appplication server cache request 打到 web server 的時後從 web ser...
TCP 的三次握手四次揮手
## 三次握手: 連線 的可...
How Digital Signature works
Key concepst: 1. private key 加密的訊息只可以用 public key 解密 2. public 加密的訊息只可以用 private key 解密 3. 不一樣的內容經過 hash function 後產生的 hash value 不一樣,一樣...
DNS Challenge for HTTPs
簡而言之 你要在DNS加一筆record 每次更新他會要求你放不同的值 https://community.letsencrypt.org/t/i-am-confused-about-dns-challenge/18754
explain https again
CA 憑證方發憑證,所謂的憑證就是包含 1. 公鑰 2. 用 CA 方的私鑰加密過的 Hash ## 具體步驟是: 1. client端發起Https request 2. Server端返回CA發的憑證 3. Client端收到憑證,並驗證憑證是否可信,如果可...
rails csrf token
關於什麼是 CSRF: https://everyday1percent.blogspot.com/2017/12/csrf.html rails 主要就是這裡 ``` def csrf_meta_tags if protect_against_forgery? ...
HTTP basic auth
HTTP Basic access authentication 簡單版: 加一個 Authorization 的 Header, 解釋版: https://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%...
安全性相關 - CSRF
CSRF 跨站請求偽造,也被稱為 one-click attack 或者 session riding,通常縮寫為 CSRF 或者 XSRF 假設 User A 已經登入了 X 站,因為 A 的瀏覽器有存了 X 站相關的登入紀錄,當 A 進入 Y 站時,Y 站可以偷拿 A...
網路安全相關 - JWT
JSON Web Token https://jwt.io/ 現在很流行用 JWT 當作 HTTP basic auth 的 token 通常會長這樣 ``` header["Authorization"] = "Bearer <YOUR_JWT>" ``` 什麼...
摘要算法和對稱加密算法
摘要算法不可逆,對稱加密可逆 所謂對稱加密就是用私鑰(也就是密碼)幫訊息加密,所以只要再用私鑰就能解密,例如 AES 算法 而摘要算法呢?就是沒有私鑰的概念,只要是一樣的字串加密出來的內容就會是一樣的,但是摘要算法會確保加密出來的字串無法(應該說:很難)被逆推回原本的值...
reddit 上的 rails performance 總結
The Complete Guide to Rails Performance 這本書 https://www.railsspeed.com/ 的總結: * Measure. If you have a serious project a cost of NewRelic...
比較 websocket 和其他技術,以及解釋action cable 的好文
大意 http stateless - polling - long polling - server send event websocket stateful - 2 ways - simultaneous communication - hard to loa...
[網路原理重修系列][3] Socket, Process
應用層運行的程序叫做 process,每個 process 經過 socket 和傳輸層溝通,socket 其實就是提供給應用層跟傳輸層溝通的 API 如果 IP 是地址,port 就像房間號,主流的幾個 port 已經在操作系統中預先定義了例如 80 是 web appl...
[網路原理重修系列][2] - OSI 模型 - 網路分層
第一層︰實體層(Physical Layer) 網卡之類的 第二層︰資料連結層(Data Link Layer) 傳送資料的層級,資料帶有 MAC address,由這層決定怎麼處理發送這些資料 第三層︰網路層(Network Layer) 讓資料在網路上傳遞的層級...
[網路原理重修系列][1] - 重要的名詞定義
ISP (Internet service provider): 網路供應商,可以想成是提供線路的人,有高質國家層級、公司層級,也有 Local 層級的 Communication link Packet switch 分組交換器 http://acai-hsieh.b...
Proxy server & Reverse proxy server
Proxy server 代理伺服器 http://linux.vbird.org/linux_server/0420squid.php 就是代理人的概念,把封包打到代理伺服器,讓代理伺服器去跟網路上的其他伺服器拿資料 資訊流動的方向是 自己的電腦 -> 代理伺服器 -...