怎樣管理密碼?

最近有一位朋友需要登入一個已經一整年沒有登入的系統,他完全忘記了密碼,試了幾個自己常用的密碼都無效後,系統便把他的帳號鎖死,最後要管理員替他重設密碼。

銀行、公司、討論區、Facebook、電郵、政府部門等等,我們要記著的密碼何其多?怎樣管理密碼才最方便、最安全?

初級使用者

很 多人會用同一個密碼,應用在大部分的系統,這個密碼一般比較易記,而且長時間不會改動,通常應用在不太重要的系統,例如網上討論區等。這種做法的好處是一 個密碼走天涯,絕對不會忘記。缺點是這個密碼一般很容易破解,因為它很可能是你的生日日期、車牌號碼、流動電話號碼、親人的個人資料、或者以上各項資料的合體,又或者把以上的資料作輕微的改動,熟悉你的人很容易猜到。一旦破解,他們便可以冒充你登入所有系統。

重新開始

HKPUG 最近兩、三年由於我工作繁重而沒有更新,偶然收到一些朋友的查詢,有些甚至表示有興趣參予,都因為我自己也不知道 HKPUG 究竟何去何從而沒有回覆,希望朋友們見諒。

現在我進入了人生的另一個階段,應該有較多時間可以與網上的朋友分享網頁開和 PHP 開發的心得,所以決定重新起步。不過我認為 HKPUG 以個人網誌的形式運作比較適合,所以把原本的 Drupal 平台改為 WordPress,簡化系統管理的工作,舊的文章將會陸續從舊的系統移植過來。

希望大家繼續支持 HKPUG。

PHP 開發人員比較喜歡以 Windows 為開發平台

以 Linux 為平台的網站伺服器遠比 Windows 的多,相信沒有人有異議,網站的編程語言則以 PHP 最受歡迎,相信爭議性也不大(可能的競爭對手只有 Java),這樣說來難道微軟這個電腦業的巨人在網站開發的環境中便毫無優勢嗎?未必,根據 Zend 最近針對全球使用 Zend Framework 開發人員所做的調查,在 Windows 上編寫 PHP 的人佔了 42%,排名第一,第二位的 Linux 則是 38.5%,MacOS X 則在第三位,19.1%。不過網站的運作平台 Linux 則以 85% 遙遙領先其他操作系統。

JavaScript 面試測驗卷

你自問對 JavaScript 的認識有多深?Sohail Anwar 撰寫了一份有 25 道題目的 JavaScript 面試測驗卷, 考考你的 JavaScript 水平。這些題目並不困難,其中一道題目問 JavaScript 應該使用甚麼 HTML 標籤包裹著?Script?Body?Head?Title?相信很多編寫網頁程式的人都可以應付自如。這份試卷提供了正確答案,可以作為學習的資源。

Google 教你優化 PHP,PHP 開發團隊指內容不確

Google 的 webmaster Eric Higgins 寫了一篇文章介紹怎樣優化 PHP,文章刊登不久,PHP 開發團隊其中一員 Gwynne Raskind 發文提出異議,指 Eric 所說的與事實不符,有些甚至完全相反,在 PHP 5 上幾乎沒有一項 Eric 的優化技巧能帶來實質的好處。我們摘錄了比較具爭議性的幾點,看看誰是誰非。

繼續閱讀 »

Mozilla 推出 Firefox 3.5

經過四個測試版本和三個 release candidate,Mozilla 終於把 Firefox 3.5 這個第二最流行瀏覽器的最新版本釋出,新版本帶來了私人瀏覽模式、更高的 JavaScript 效能、以及支援新的 HTML 5 標準,例如無需外掛的視頻和音頻播放。用戶可以在 www.getfirefox.com 下載 Firefox 的 Windows、Mac OS、及 Linux 的版本 70 多種語言版本。

Mozilla 的行政總裁 John Lilly 在聲明中說:「在網絡上這麼多事發生,現在是瀏覽器的偉大的時刻,Firefox 3.5 匯集了最創新的網絡技術,並且是最完整和強大的瀏覽器。」領導 Mozilla Firefox 小組的 Mike Beltzner 期望新版本可以使 Firefox 各版本的下載總數超越 10 億。

Firefox 3.5 還包括一項新技術,容許用戶告訴網站它們的位置,讓網站可以提供相關訊息,例如附近的餐館和企業,這項功能使用 Google Location Services 服務,它使用一個 Wifi 接入點 (access point) 和已知 IP 地址的數據庫。

JavaScript 的效能由於得到新的 TraceMonkey 引擎之助,速度提升了兩倍以上,但是 PCMag.com 的測試顯示它仍然落後於 Chrome。新的視頻和音頻播放利用 Ogg Vorbis 和 Ogg Theora 的開源編碼解碼器,但這些尚未被 W3C 接納為官方標準。

CSS 的 overflow 屬性

從 DOM 技術的角度看,網頁中每一件物件都是「箱」狀的,一段文字、一幅圖像、一個連結,它們的長度、闊度、位置等等都可以由 CSS 控制,若果你沒有設定箱子的大小,它會隨著內容的多寡而自行調整,確保容納並顯示所有內容,但若果箱子的大小被限制了,卻又無法容納所有內容的時候,這時 便是 CSS 的 overflow 屬性發揮作用的時候。

CSS Tricks 網站上 Chris Coyier 有一篇文章介紹 CSS 的 overflow 屬性,文章說,Overflow 的值可以是:visible (預設)、hidden、scroll 及 auto,它還有兩個「姊妹」屬性 overflow-x 及 overflow-y,但不是所有瀏覽器都支援。

繼續閱讀 »

線上文書應用服務問卷調查

東吳大學企業管理研究所的朱琪瑤同學,正在為她的研究專案進行問卷調查,想了解電腦族對於線上文書應用服務的接受度,若果你曾經使用過或瞭解此新應用模式,請花少許時間幫忙回答朱同學的問卷

JavaScript 的版本

近來網頁應用的開發人員越來越頭疼,微軟積極開發新版本的 IE,每一次都聲稱支援更多更新更標準的 JScript 功能,做為開放原碼的龍頭瀏覽器 Mozilla,新版本推出得更加頻密,每一次它所支援的 JavaScript 都好像提升一個版本,市場份額較少的 Opera 和 Safari 也標榜支援最新最標準的 JavaScript,甚至宣稱自己的 JavaScript 引擎效能更高,Adobe 也說它的 Flex 技術平台使用與 ECMAScript 3 兼容的 ActionScript,同一時間,幾乎所有主流瀏覽器都宣稱兼容 ECMAScript 3。ECMA 作為標準制定機構竟然也來製造混亂,忽然取消原定於 2008 年末推出的 ECMAScript 4,說今年會推出 ECMAScript 5,而ECMAScript 4 則改名為 ECMAScript Harmony,但沒有路線圖或時間表。作為一個開發人員,你怎樣理解這場混亂?

繼續閱讀 »

認識 PHP 的 Hashing Functions

Hashing function (散列函式) 在網頁應用中被廣泛採用,從數碼簽署、錯誤檢測、登入驗證、到壓縮儲存空間,由於它的原理比較複雜,很多人把它跟加密函式混淆,對於如何運用 hash function,如何選擇合適的 hash function,和它的優點缺點都不清楚,本文嘗試解答這些問題。

Hashing 是甚麼?

簡單地說,Hashing 是一種數據影射 (mapping) 的算法 (algorithm),通常用來把一大串不定長度的數據影射到一個固定長度的、較短的數據,這個固定長度的數據稱為 hashing value (散列值)。

繼續閱讀 »

PHP Cheat Sheets

Cheat Sheet 又稱做「作弊紙」、「小抄」或「備忘紙」,不過我比較喜歡稱她做「速記片」,它是把一些常用的東西用很簡潔的格式紀錄下來方便快速檢查和重溫,當你嘗試從 一個字串中抽取一部份內容,應該調用 PHP 的 mid()、substr()、還是 substring() ?1.3 == 1.30 是否為真?如果你有類似的煩惱,下面列出的免費 PHP 速記片一定可以幫的上忙:

繼續閱讀 »

解除 PHP max_execution_time 的限制

很多人都知道 php.ini 中預設的最長執行時間是 30 秒,這是由 php.ini 中的 max_execution_time 變量指定,倘若你有一個需要頗多時間才能完成的工作,例如要發送很多電子郵件給大量收件者,或者要進行繁重的數據分析工作,伺服器會在 30 秒後強行中止正在執行的程式,這個問題其實有解決辦法的。

最簡單當然是修改 php.ini 中 max_execution_time 的數值,不過不是所有人都有權修改 php.ini,例如使用網頁寄存的開發人員,伺服器上的 php.ini 由很多網站共同使用,所以不能隨意修改。

另一個辦法是在 PHP 程式中加入 ini_set(‘max_execution_time’, ’0′),數值 0 表示沒有執行時間的限制,你的程式需要跑多久便跑多久。若果你的程式仍在測試階段,建議你把時限設定一個實數,以免程式的錯誤把伺服器當掉。

利用 Data URL 加速你的網頁

對優化網頁效能有研究的人都知道,首要的任務是盡量減少 HTTP 請求 (http request) 的次數,例如把多個 JavaScript 檔案合併,把多個 CSS 檔案合併,利用 CSS 精靈和合併的小圖示等等,但是很多人都不知道還有一個 data URL 的密技,讓我們直接把圖像的內容崁入網頁裡面,這個密技的官方名稱是 data URI scheme

繼續閱讀 »

幾件有關 favicon 你必須知道的事

甚麼是 favicon?

Favicon 是 favorite icon 的簡稱,幾乎所有專業網站都有 favicon,它是一個由不同解像度的圖標結合成的檔案,例如它可能結合了一個 16×16 和一個 32×32 的 .bmp 檔案於一身,Favicon 的檔案延伸名稱是 .ico。在大部分的瀏覽器,這個圖標會在網址旁邊或者在書籤頁裡面顯示。通常 favicon 反映了該網站的設計或者有關機構的商標。

甚麼是 .ico 檔案?

Favicon 是一個由不同解像度的圖標結合成的檔案,內含的圖標有些是 16×16,有些是 32×32,有些只有 16 種顏色,有些有 256 種顏色,瀏覽器或其他使用 favicon 的系統會根據當前的需要,選擇最適合的解像度和顏色數量的版本來顯示,倘若沒有完全吻合要求的版本,它們可能要把圖表拉大、縮小、降低顏色的數量等等,這 些操作可能會使圖標的素質變得不理想。

繼續閱讀 »

XOOPS 推出新版本 2.3.3

屢獲獎項的 PHP 內容管理系統 XOOPS 推出新版本 2.3.3,主要的更新包括消除臭蟲和改善了可用性,例如:

改進了的會員資料和私人訊息模塊 改進了的安裝程序 改進了的型版 改進了的 tinymce 編輯器

其中安裝程序是比較突出的改進項目,不但使系統安裝更容易,安裝重要的模塊也簡單了。這個新版本是由來自中國、法國、英國、美國、德國、祕魯、利比 亞、比利時、荷蘭等國家的開發者共同合作的成果,這個全球性的 XOOPS 社群是這個系統的力量來源,並使新版本在很快的時間被翻譯成超過 20 種語言。

20 個帶領 CSS 成為主流技術的網站

你對那些研究 CSS 的網站印象最深刻?Tim Wright 在 SitePoint 網站列舉 20 個推動 CSS 成為主流技術的網站,Tim 把這份名單分為「明顯」和「不那麼明顯」兩部份,前者是一些大部分人馬上想到的網站,遺漏了任何一個都可能會引發一場論戰;後者則包含一些我們可能會忽略,但是對推動 CSS 有重大貢獻的網站。

開始編製這份名單的時候,Tim 認為很多人都推動過 CSS 的發展,這份名單應該不難製作,但隨著他明白他要列舉的是網站,而非背後推動的人,而研究 CSS 技術的網站多如恆河沙數,無論如何,他還是製作了一份很值得參考的 CSS 網站名單。

繼續閱讀 »

注意!六個不良客戶的預警訊號

即使在經濟不好的年頭,我們有時也不得不拒絕一些生意,設計師 Alyssa Gregory 在她的網誌中說,雖然做好設計的工作是設計師的本分,但是也要警惕會增加生產成本的潛在的工作(及潛在的客戶),她列舉了六個不良客戶的預警訊號。

1. 無法就服務條款達成協議

那個潛在客戶看來已經準備就緒……然後他們繼續跟你就價格進行談判,使你無法確定交付的項目及項目的限期,雙方沒有任何東西是以書面確認的 ──沒有簽署好的協議,也沒有通過電子郵件確認的批核,然後客戶說類似這樣的話:「讓我們開始吧,我們可以一面工作一面繼續討論細節。」這時你應該立即掉 頭跑──不是走。

最好和最差的編程人員,效率平均相差 3 倍!

Jakob Nielsen 有一篇關於電腦相關工作的個人效率調查研究, 發現越複雜的工作,人們的效率的差別便越大,其中最複雜的程式編寫工作,最好和最差的員工的效率平均相差 3 倍,最壞的情況下甚至達到 20 倍。研究所涉及的工作包括:文書處理、個人電腦使用、尋找資訊、網站使用、和程式編寫,若果把效率最高的 25% 與最低的 25% 員工相比,平均工作效率的比例是:

 工作種類  效率比例  文書處理  1.8  個人電腦使用  1.9  尋找資訊  2.2  網站使用  2.4  程式編寫  3.0

根據研究的結果,Jakob Nielsen 認為所有機構、公司寧可多花一點時間,多付出一點薪金,也要聘請最好的編程人員,找到最優秀的 1% 的人才可能不容易,但是只要付出一些努力和誠意,找到最好的 25% 人才還是不難的。

用 PHP 實現 HTTP 身份驗證

HTTP 身份驗證 (HTTP authentication) 是一種十分常用而容易實作的驗證方法,它倚賴網頁伺服器的內置功能,大量縮短所需編寫的程式碼,對於用戶驗證的要求不高的系統,是一個很實用的驗證方法。Evert Pot 在他的網誌上討論了如何用 PHP 實作這種用戶驗證。

基本驗證 (Basic Auth)

HTTP 身份驗證有兩個主要的驗證方案:「基本驗證 (basic authentication)」和「摘要驗證 (digest authentication)」,其中基本驗證比較容易實作,所以也比較常見,以下是一個以 PHP 實作的基本驗證:

繼續閱讀 »

SitePoint 書籍特價發售,為澳洲火災災民籌款

為了支援澳洲森林大火的災民,總部位於澳洲的科技網站 SitePoint 舉行歷來最慷慨的書籍義賣行動,購買五本 PDF 版本的 SitePoint 書籍,只需支付一本的價錢──美金 29.95!這次義賣為期三天,SitePoint 會把這次義賣所得的款項全部捐贈給火災的災民,目標籌得美金 100,000 元善款。