2013年6月21日 星期五

Tor 網路匿蹤 - Tor Anonymity Online

還記得前陣子臺灣的智慧財產局所鬧出的封鎖侵權網站風波剛落幕,近日美國國家安全局(National Security Agency, NSA)也被爆出利用稜鏡計畫(PRISM)監控網路使用者的通訊資料,姑且不論這些行為是出於利益關係還是政治因素,至少可以確定政府單位想將網路世界納入監控網之中,而這意圖是十分有可能轉變成實際行動的。

在美國有電子前線基金會(Electronic Frontier Fundation, EFF)能夠代表網路使用者向美國政府發聲,悍衛屬於網路世界的自由,但很不幸的是,身為網路一份子的我們,在臺灣並沒有一個像樣的組織能夠保護我們使用網路的自由;因此,除了盡全力守護對政府大聲疾呼我們應當擁有網路自由的權利之外,也應該懂得如何保護自己。

但如何保護自己呢?如何讓政府單位無法監控我們的網路通訊內容呢?

我想,學會如何使用 Tor 會是一個很好的開始。

Tor is free software and an open network that helps you defend against a form of network surveillance

2013年5月2日 星期四

Debain 安裝 pythonbrew 徹底解脫 Python 的版本問題

筆者很喜歡 Python 這個程式語言,可是在使用上總會遭遇到版本的問題,例如在 Debian 這個作業系統上的 Python 版本總是會比較舊一些,導致有些套件的使用上感到不順手,特別是有些方便的 Package 只有在 Python 2.7.X 以上才能夠使用,偏偏 Python 2.7.X 目前只有升級到 Debian testing 才能夠使用,而筆者目前只想使用 Debian stable(Squeeze) 的套件、系統環境(雖然 testing 也頗為穩定)。

幸好這樣的問題可以靠 pythonbrew 來解決!
pythonbrew is a program to automate the building and installation of Python in the users $HOME.
簡而言之,pythonbrew 可以在不變動到系統主要環境的情況下,將 Python 安裝在一個隔離的路徑下,同時允許多個版本的 Python 存在,令使用者能夠自行切換 Python 版本與安裝不同版本的 Python 套件。

下文就是 pythonbrew 的安裝指令與簡要的使用方法。

2013年4月20日 星期六

利用 Squid 代理伺服器(Proxy)分析 HTTPS 連線內容


筆者近來學了些如何側錄(sniffer) HTTPS 連線內容的技術,在這裡分享給大家。
要側錄 HTTPS 的封包並不困難,把 Wireshark 開催下去就好了(無誤),但要看到 HTTPS 封包的內容,就得想辦法解開加密內容,不然只能看到像下圖的有字天書。

HTTPS連線內容

2013年3月26日 星期二

Javascript 取得 split() 結果的第1個及最後1個元素 (the first element and the last element)

Javascript 的 split() 函式會將結果以陣列(array)型態回傳,因此可以分別以 shift() pop() 取得第一個及最後一個元素。

範例:
var str = "A, B, C, D";

console.log(str.split(",").shift());
// output A

console.log(str.split(",").pop());
// output D

jQuery - detach() 與 remove() 之差異

在 jQuery 官網的 DOM 操作文件中,有提到 detach()remove() 兩種方法,這兩種方法的說明都是:
Remove the set of matched elements from the DOM.
意思就是將元素從 DOM 中移除,不過進一步閱讀詳細的使用說明時, 就會發現兩者其實是不太相同的。

2013年3月22日 星期五

jQuery 小祕訣 - htmlentities

有些時候為了避免網頁被植入一些 HTML 標籤(如 <iframe>, <script>, <applet> 等),就必須將一些特殊字元轉為 HTML entities (或稱 HTML 實體),例如 < 可被轉為 &lt; 或是 &#60,其中前者(&lt;)被稱為 entity name, 後者(&#60)為 entity number,這兩種都是可被接受的轉換方式。

更進一步的例子為如下的 HTML 標籤:
<script>&</script>
被轉換成 HTML entities 之後就會變成如下的字串:
&lt;script&gt;&amp;&lt;/script&gt;

雖然在瀏覽器上看起來一樣是 <script>&</script> ,不過已經不是 HTML 標籤了。
p.s. 這對於網頁程式師而言算是相當實務的安全性作法之一

2013年3月18日 星期一

KVM (Kernel based Virtual Machine) 常用指令解說

KVM(Kernel based Virtual Machine) 是一套基於 Linux Kernel 的虛擬化技術,與 QEMU, XEN, Oracle VirtualBox 一樣都已經是相當成熟的 Open Source 的虛擬化解決方案。值得一提的是,KVM, QEMU, XEN 三種不同的虛擬化解決方案能夠在 Linux 內兼容並蓄,並且透過 libvirt 達成統一的管理窗口,因此本篇會以 virsh 指令運用為主解說常用的 KVM 指令。

2013年3月13日 星期三

Debian 重新編譯套件 (Rebuilding Debian packages)

雖然 Debian 有很方便的 APT 套件管理工具,讓我們省去了許多自行下載、編譯(compile)、安裝程式碼的過程,但總難免會遇到需要修改程式碼的問題,這時就得下載套件原始碼(source code),接著再根據套件相依性安裝其他套件,最後修改程式碼後進行編譯、安裝,但是問題往往不會如此順利與單純......。

一般透過 APT 所安裝的套件,大多都有經過 Debian 開發者的維護與修補(patch),多多少少會與原本套件的原始碼不同,所以下載其他來源(如官方網站)的套件原始碼進行編譯時,有可能會遇到一些光怪陸離、不知如何解決的問題,例如你可能會遇到你所下載的套件原始碼並沒有針對 Debian 環境的修補,而導致無法順利安裝。

累了嗎?也許你可以有更好的選擇!