參考了幾份程式, 寫法大同小異, 這裡有簡單的 code snippet, 另外 django-ban 大小適中, 不會太複雜而不想看, 又附 sample project 說明怎麼設定, 若沒用過 middleware 的話, 可以參考看看。
概念就是自己寫個 middleware, 加入 settings 裡。middleware 有實作 process_request, 在函式裡檢查 REMOTE_ADDR (我看了好幾份程式都先優先用 HTTP_X_FORWARDED_FOR, 但這樣並不安全), 若在黑名單內, 就傳回 http.HttpResponseForbidden()。感覺這種寫法滿乾淨的。
剛開始一直在找類似 pre-processor 之類的語法, 因為學生時期玩 Rails 1.8 時, 好像有這樣的東西, 就「直覺」地找類似的東西。後來才想到, 這種要擋在全部連線之前的程式, 似乎正好適合寫在 middleware 裡。找對方向後, 就找到一堆東西了。
備註: 找的過程中看到有人用 ipcalc, 計算 ip subnet 的好東西, 之後需要再裝來用。
訂閱:
張貼留言 (Atom)
在 Fedora 下裝 id-utils
Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...
-
UbuntuCompilationGuide – FFmpeg 說明如何在 Ubuntu 上安裝 ffmpeg 並包含 libx264 (支援 H.264)。全部安裝和移除的指令都有了, 超方便的。實測的結果, 用 libx264 壓出來的檔案又小畫質又好, 是必要的元件。 ...
-
最近有需求讀 C/C++ 的東西, 試了 ctags, cscope 覺得不理想。問了一下收到許多回應 ( G+ 、 plurk ), 真是太感謝大家了, 減少入門摸索的時間。 試用的感想如下: grep 優點 : 好上手 缺點 : 陽春 安裝 : 內建於 L...
-
最近被迫在短時間內學會 strace、gdb 這些之前一直用不到的重兵器, 都還不熟練就是了。剛好使用 hgsubversion 時有些困擾, 雖說它和 svn 整合得很好, 無縫接好 pull / push , 但它不會顯示 mercurial 對應到的 svn 版本, 平...
沒有留言:
張貼留言