前言

最近剛好碰到一些 CSRF 的案例,趁著這次機會好好研究了一下。深入研究之後才發現這個攻擊其實滿可怕的,因為很容易忽略它。但幸好現在有些 Framework 都有內建防禦 CSRF 的功能,可以很簡單的開啟。

但儘管如此,我認為還是有必要瞭解一下 CSRF 到底在幹嘛,是透過怎樣的手段攻擊,以及該如何防禦。就讓我們先來簡單的介紹一下它吧!

CSRF 是一種 Web 上的攻擊手法,全稱是 Cross Site Request Forgery,跨站請求偽造。不要跟 XSS 搞混了,他們兩種是不同的東西,那到底什麼是 CSRF 呢?先從我自身的一個案例談起好了。

閱讀更多

前言

最近剛好在做直播相關的東西,雖然說是做前端,但還是必須懂一些直播的原理
至少要知道有哪些格式,以及各種格式的優缺點是什麼,做起來也會比較踏實

這篇就簡單記錄一些心得跟資料,如果想比較深入了解 hls 的,可以參考下面這兩篇文章:

  1. 直播协议的选择:RTMP vs. HLS
  2. 在线视频之HLS协议—学习笔记:M3U8格式讲解及实际应用分析

閱讀更多

前言

Redis 是一個 in-memory 的 key-value database,因此常常被用在需要快取(Cache)一些資料的場合,可以減輕許多後端資料庫的壓力。這篇就來簡單介紹一下 Redis 提供哪些好用的東西,以及可以應用在什麼地方。

閱讀更多

(原文發表於:http://blog.techbridge.cc/2016/05/20/fast-way-to-get-apk-information/)

前言

之前,我們曾經介紹過如何反編譯 Android Apk。而藉由反編譯,我們可以知道許多跟 apk 有關的資訊,例如說 AndroidManifest.xml,只要這個檔案就可以看出 apk 的一些基本資訊,還可以看到整個 apk 的程式碼跟使用到的資源(圖檔、影片、聲音等等)。

但若是今天我們只想要知道基本資訊,完全不想知道 apk 是怎麼寫的,也根本不關心它用到哪些資源,那該怎麼辦呢?反編譯需要一點時間,愈大的 apk 需要愈久,有沒有更好的方法呢?

閱讀更多

(原文發表於:http://blog.techbridge.cc/2016/04/23/fast-restful-nodejs-api-backend/)

前言

現今有些網站採用了 Single Page Application 的方案,後端只負責提供 API 讓前端抓取資料,達成完全的前後端分離。前端的選擇有很多種,你可以用 Angular,可以用 Ember.js,也可以用 React + Redux。至於後端的 API,必須符合固定格式,才能讓前端的人員比較好抓取。而這個「固定格式」,最常見的就是我們今天的重點:RESTful

閱讀更多

前言

在寫程式的時候,其實會滿常用到「搜尋」的功能,最簡單的搜尋就是在一串數字裡面找出你想要的數字,而這也是我們今天的主題。

這一篇大致上會分成三個部分,第一部分會先介紹線性搜尋法,第二部分介紹二分搜尋法,最後一部分談談二分搜尋法在不同條件底下的實作方式會有什麼不同。

閱讀更多

最近發生主機被大量 request 攻擊的事件,而且慘的是這台主機放的是論壇服務
假設攻擊的點是論壇首頁,每次 request 都會去 query DB,而且有一堆 join
其中還有些是 POST 的指令會讓 db update
就這樣一直瘋狂又 select 又 update 導致 DB lock,cpu 飆高掛掉

如果論壇是自己寫的,還可以在 DB 跟 application 之間加上 redis 之類的快取
但偏偏這個論壇系統是別人的,沒有辦法動

閱讀更多

CS50 的全名是 Introduction to Computer Science,是一堂哈佛大學的通識課程
edx 上面有開課,任何人都可以去修,甚至還有助教幫你改作業(只有程式作業,不包含其他像是紙本作業的那種題目)

我第一次聽到 CS50 這堂課,是經由這篇報導:CS50:一堂超過 800 個哈佛學生選修的「硬課」,魅力何在?
一直到最近把這門課修完之後,才了解這門課厲害在哪裡。

先來回答標題的意思:如海洋般的程式課程。為什麼是海洋,因為這門課:又深又廣
有多深多廣呢?我記下每一週的課程大綱跟作業,請你身邊有資工背景的朋友看看,就會知道我在說什麼了

閱讀更多

前言

對於 Android 工程師來說,了解如何反編譯可以增進自己對 Android 底層的理解,也可以思考如何保護自己的 apk 不被反編譯。
對於一般人來說,許多現成的工具可以幫助我們非常輕鬆的、只要打打幾個指令就可以反編譯 apk,看到 java source code,滿足自己的好奇心。
本篇文章只介紹一些工具的使用,適合初學者觀看。若是想了解更底層的知識,可以參考文末附上的延伸閱讀。

閱讀更多