Category: linux
Category: Server
使用 TOTP 登入 SSH
以前我過討論 SSH 的安全設定 (這裏和這裏),建議大家使用同時使用密碼和公鑰來登入 SSH,強化系統的安全性。今天我介紹另一個用戶驗證機制給大家選擇,就是現今非常流行的一次性密碼,可以加入以上的機制成為三重驗證,或者自選其中兩者。
Linux 壓縮算法大比試
Linux 上有很多壓縮算法,最廣為人知的是 compress、gzip、bzip2 等等,它們有多好?壓縮率最高是哪一個?壓縮速度最快的是誰?解壓夠快嗎?今天我們找來幾個來進行比試。
Systemd vs Cron Job
傳統的 Linux 管理員都會用 crond 及相關的工具來執行周期性的工作,其實自從 systemd 十多年前取代 System V init 以來,Systemd 和相關的工具,已經包含了執行周期性工作的能力,其彈性和功能遠勝 crond。
CentOS 7 下安全配置 SSH (二)
我們在第一篇文章討論了一些在 CentOS 7 中配置 SSH 的方法,那些都是比較容易實作、容易理解,對用戶體驗的影響也比較少。這一篇將會介紹比較複雜的配置,需要管理員按照具體情況做出適當決定,甚至有部分建議在安全性和用戶體驗方面較具爭議性。
CentOS 7 下安全配置 SSH (一)
SSH 通常是我們進入新伺服器的第一個應用程式,它也取代了 telnet 和 rsh 成為管理伺服器的最主要介面。儘管 SSH 預設使用加密通訊,登入的密碼和通訊內容都不容易被偷窺,預設的設定大致上安全,可惜由於需要兼顧舊用戶和舊系統,一些過時和不安全的選項仍然被開啟着,在國家級黑客橫行無忌的年代,系統中任何一顆鬆掉的螺絲都會致命,所以我們將會討論如何加強 SSH 的安全性。這一篇只討論基本的安全配置,比較容易理解,過程也比較簡單,對用戶的負面影響也比較少,較進階和較具爭議性的安全配置將會留待下一篇討論。
OpenVZ 下 CentOS 7 的防火牆
我在一篇關於 CentOS 7 安全設定的文章討論到安裝防火牆 firewalld,這是 CentOS 7 新引入的防火牆系統,代替沿用多年的 iptables
,不過 firewalld
只能在 CentOS 7 的新內核使用,但是,如果你的 CentOS 7 不是運行最新的內核,便不能使用 firewalld
,應該怎麼辦?
安裝 CentOS 7 後必做的七件事
CentOS 是最多人用來運行伺服器的 Linux 版本,最新版本是 CentOS 7。當你興趣勃勃地在一台主機或 VPS 上安裝 CentOS 7 後,首要的工作肯定是加強它的安全性,以下列出的七件事,是你進一步配置系統和安裝其他軟件前必須做的。
為甚麼我們應該使用 VPS?
從前架設網站幾乎一定是光顧網站寄存服務,透過虛擬網站技術,一台實體機器裏「居住」了數十個甚至數百個網站,雖然每個網站所佔用的資源例如硬碟容量、網絡流量等等都受到限制,但一個惡意製作的網站程式仍然可以瞬間吞噬系統所有記憶體、CPU、Swap 空間等,甚至入侵其他網站盜取資料。隨著硬件的價格越來越便宜,虛擬作業系統越來越成熟,大量平價的 VPS 湧現,IT 人應該認真考慮從寄存服務遷移到 VPS。
Category: shell
Category: Security
使用 TOTP 登入 SSH
以前我過討論 SSH 的安全設定 (這裏和這裏),建議大家使用同時使用密碼和公鑰來登入 SSH,強化系統的安全性。今天我介紹另一個用戶驗證機制給大家選擇,就是現今非常流行的一次性密碼,可以加入以上的機制成為三重驗證,或者自選其中兩者。
密碼的長度是安全性的黃金標準,其他的通通是廢話
無數網上服務都依靠密碼來驗證用戶的身份,為了鼓勵用戶使用複雜的密碼,幾乎所有網站都有某些密碼政策,例如要求密碼最少 6 個字符,必須包含大小寫英文字母和標點符號等等。這些所謂密碼政策,絕大部份都是由自以為是安全專家的人構想,或者是懶惰的管理員從人家處抄過來使用。其實,真正有用的密碼政策只有一個,就是密碼的最短長度,其餘的通通是廢話。
比學生作品更差劣的網站: IBANSPORT
最近有朋友使用 IBANSPORT 網站報名跑步比賽,事後向我猛吐苦水,說過程中一步一碰壁,幾乎每一步都撞到系統錯誤,雖然有錯誤訊息,但卻毫無幫助,令人不知何去何從。
IBANSPORT 是香港一間計時晶片公司,與很多體育團體合辦跑步比賽,很多賽事都必須在他們的網站報名,網站已經運作多年,我好奇之下造訪一下,結果令我大吃一驚。 簡單的說,為了保護大家的個人隱私,儘快把自己的資料刪除,不要再使用這個網站。
不能信任 1024 bit 的 DH 質數
Diffie-Hellman 密鑰交換算法,簡稱 DH 算法,是整個互聯網安全性最重要的基石,無數通訊協定,包括 VPN、SSH、HTTPS 等等依賴它建立加密通道,DH 算法需要一些質數作為運算基礎,有研究人員發現,部份使用特定程序產生的 1024 bit 質數具有數學上的弱點,使用這些質數建立的加密通訊,比使用真正隨機產生的質數建立的加密通訊,容易破解一萬倍。
CentOS 7 下安全配置 SSH (二)
我們在第一篇文章討論了一些在 CentOS 7 中配置 SSH 的方法,那些都是比較容易實作、容易理解,對用戶體驗的影響也比較少。這一篇將會介紹比較複雜的配置,需要管理員按照具體情況做出適當決定,甚至有部分建議在安全性和用戶體驗方面較具爭議性。
CentOS 7 下安全配置 SSH (一)
SSH 通常是我們進入新伺服器的第一個應用程式,它也取代了 telnet 和 rsh 成為管理伺服器的最主要介面。儘管 SSH 預設使用加密通訊,登入的密碼和通訊內容都不容易被偷窺,預設的設定大致上安全,可惜由於需要兼顧舊用戶和舊系統,一些過時和不安全的選項仍然被開啟着,在國家級黑客橫行無忌的年代,系統中任何一顆鬆掉的螺絲都會致命,所以我們將會討論如何加強 SSH 的安全性。這一篇只討論基本的安全配置,比較容易理解,過程也比較簡單,對用戶的負面影響也比較少,較進階和較具爭議性的安全配置將會留待下一篇討論。
安裝 CentOS 7 後必做的七件事
CentOS 是最多人用來運行伺服器的 Linux 版本,最新版本是 CentOS 7。當你興趣勃勃地在一台主機或 VPS 上安裝 CentOS 7 後,首要的工作肯定是加強它的安全性,以下列出的七件事,是你進一步配置系統和安裝其他軟件前必須做的。
轉貼:英國政府索取解密密鑰,電郵服務商寧可結束業務
原文網址:英國政府索取解密密鑰,電郵服務商寧可結束業務 (原文網站已關閉)
曾經獲得斯諾登信任的電郵服務商 Lavabit,和網絡安全通訊服務商 Silent Circle,因不肯把解密密鑰交給美國國家安全局 (NSA) 而先後被逼結束業務,同樣事件原來在今年初亦曾經在英國發生。英國國家通訊總局 (GCHQ) 在年初向 CertiVox 索取可解密用戶電郵的密鑰,CertiVox 寧可結束他們的電郵加密系統 PrivateKey,也不向 GCHQ 低頭。
轉貼:FreeBSD 開發團隊不信任 Intel 和 VIA 的加密晶片
原文網址:FreeBSD 開發團隊不信任 Intel 和 VIA 的加密晶片 (原文網站已關閉)
FreeBSD 一向不信任 Intel 和 VIA 加密晶片的隨機數產生功能,不會以它們作為產生加密密鑰的唯一隨機數來源,即將發佈的 FreeBSD 10.0 版本亦貫徹這一信念。Intel 和 VIA 分別提供 RDRAND 和 Padlock 工具,以硬體晶片產生隨機數,FreeBSD 把這些晶片產生的數據混入其他數據中,這樣即使晶片的運算邏輯暗藏後門程式或弱點,最後得出的隨機數仍然安全可靠。
對抗點擊劫持新武器:X-Frame-Options
點擊劫持 (Clickjacking) 是一種誘使用戶點擊一個看似無害的超連結或按鈕,實際上卻是點擊在另一個網頁上的一個超連結或按鈕。後果可能是泄露了機密的資料,或無緣無故「讚好」一個網站,甚至開啓電腦內置的鏡頭和麥克風。網站開發人員當然有希望保護用戶不受攻擊,可用的手段主要有 Framekiller 和 X-Frame-Options,前者並不可靠,尤其在 IE 上可以輕易被攻擊者破解 (IE 的安全問題真是罄竹難書),後者只是瀏覽器自設的措施,並非業界標準。IETF 終於在兩個月前正式接受 X-Frame-Options 為 HTTP 的標頭 (header),從此開發人員的安全工具箱又多一件武器。
轉貼:完美遠期保密
原文網址:完美遠期保密 (原文網站已關閉)
完美遠期保密 (Perfect Forward Secrecy) 是在 HTTPS 基礎上進一步保護用戶與伺服器之間的通訊,在 HTTPS 通訊協定下,所有數據都被加密才送進網絡,但是萬一伺服器的 SSL 密鑰 (private key) 因某些原因泄漏,HTTPS 的加密的鑰匙便會被破解,過去和將來的通訊統統暴露在陽光之下。完美遠期保密使用的卻是一次性的加密鑰匙,不能從伺服器的 SSL 密鑰推算出來。
轉貼:Android 4.3 安全漏洞,Apps 可撤銷所有系統鎖定功能
原文網址:Android 4.3 安全漏洞,Apps 可撤銷所有系統鎖定功能 (原文網站已關閉)
Google 在九月宣佈 Android 手機新增一項功能,用戶可以遙控把手機鎖定,當手機被盜或違失時特別有用,新功能會撤銷本來的鎖定設定,並設定密碼保障手機的安全。這本來是一個好主意,但是有人發現 Android 一個安全漏洞,Apps 可以撤銷 Android 4.3 所有鎖定功能,令這個遙控鎖機功能形同虛設。更令人驚訝的是,發現這個漏洞的公司向 Google 通報,但 Google 一直不作回應,他們唯有把問題公開,希望用家關注。
轉貼:Google Glass 涉侵隱私,美國一餐廳聲言禁用
原文網站:Google Glass 涉侵隱私,美國一餐廳聲言禁用 (原文網站已關閉)
美國西雅圖一間餐廳規定,顧客要麼把 Google Glass 留在家中,否則請離開。餐廳在 Facebook 上宣布新規定,引起贊成和反對的聲音,有人甚至聲言杯葛,但餐廳老闆指杯葛的行為可笑。相信有關 Google Glass 侵犯隱私的爭議將陸續有來。
轉貼:美國警察局繳付 $750 美元贖金取回被 CryptoLocker 劫持的檔案
原文網站:美國警察局繳付 $750 美元贖金取回被 CryptoLocker 劫持的檔案 (原文網站已關閉)
轉貼:Google、Microsoft、Yahoo 等公司對網絡通訊的保密措施足夠嗎?
原文網站:Google、Microsoft、Yahoo 等公司對網絡通訊的保密措施足夠嗎? (原文網站已關閉)
鑒於各國情報機關積極監視網絡上的通訊,Electronic Frontier Foundation (EFF) 調查主要的網上服務企業如何保障網絡通訊不受監視,並製成列表供我們參考。EFF 從五方面評估企業保護網絡通訊的工作,獲得滿分的只有寥寥幾家,包括 Dropbox, SpiderOak 和 Sonic.net,Google 的完成度也十分高。另一方面,Microsoft, Yahoo, Amazon 等一些我們熟悉,每天對媒體高呼多麼注重資料的保障和客戶隱私安全性的公司,對網絡通訊的保護卻嚴重不足。
轉貼:LG Smart TV 記錄用戶觀看節目的資料和 USB 儲存器的內容
原文網站:LG Smart TV 記錄用戶觀看節目的資料和 USB 儲存器的內容 (原文網站已關閉)
轉貼:CryptoLocker 開發者建立網站 10 個 Bitcoin 買解密鑰匙
原文網址:CryptoLocker 開發者建立網站 10 個 Bitcoin 買解密鑰匙 (原文網站已關閉)
轉貼:無需網絡卡藍牙裝置,新型電腦病毒互相通訊有妙法
一個令人毛骨悚然的故事:一名電腦安全專家發現一台 MacBook Air 中了病毒,嘗試對病毒進行深入研究,並解除它的武裝,拆除它部分元件,怎知它竟然可以自我「療傷」,把損壞和失去的元件復原,專家懷疑病毒透過網絡尋回失去的部分,於是把 MacBook Air 的網絡卡和藍牙裝置拔掉,甚至把電源線也拔掉(只使用電池),消滅一切可能的通訊渠道,但發現病毒仍然有自愈能力。專家於是使用特殊的工具,竟然發現這台應該已被完全孤立的 MacBook Air 竟然不斷發送和收到加密的訊息,與另一台感染了相同病毒的電腦通訊。
轉貼:黑電郵聯盟-防止電郵被監視的未來科技
原文網址:黑電郵聯盟-防止電郵被監視的未來科技 (原文網站已關閉)
由於受到美國國安局 (NSA) 壓力交出加密密碼而自行關門的電郵服務商 Lavabit,與另一間因相同原因而關掉旗下電郵業務的 Silent Circle,合組成「黑電郵聯盟」(Dark Mail Alliance),準備開發可以防止被監視的新一代電郵技術。
轉貼:Uncensor.it -免費網頁代理幫你避開網絡審查
轉貼:強化網上安全的 Firefox 附加元件
原文網址:強化網上安全的 Firefox 附加元件 (原文網站已關閉)
注重網上安全和隱私的人大都是用開放源碼瀏覽器 Firefox,Ghacks.net 推薦了一些 Firefox 的附加元件 (add-on) 進一步提升上網的安全性和身份的隱密性,Firefox 的附加元件數量數以萬計,僅是「隱私及安全」類別便有超過一千個,當然素質有參差,若果感到茫無頭緒,不妨參考一下這份推薦名單。
轉貼:中國騰達路由器藏有後門漏洞
原文網址:中國騰達路由器藏有後門漏洞 (原文網站已關閉)
Craig Heffner 繼上星期發現 D-Link 路由器有後門漏洞後,現在又發現中國騰達 (Tenda) 生產的路由器有人為植入的後門,可以直接在路由器內以超級用戶 (root user) 的身份執行任何命令。
轉貼:勒索軟體 CryptoLocker 加密檔案後,索取 $300 美元解密
原文網址:勒索軟體 CryptoLocker 加密檔案後,索取 $300 美元解密 (原文網站已關閉)
轉貼:如何在無孔不入的網絡監控中保護自己?
原文網址:如何在無孔不入的網絡監控中保護自己? (原文網站已關閉)
世界各國的情報機關藉著竊聽網絡、強迫電訊公司呈上客戶的通訊內容、收集電話通話的元數據、入侵包括路由器和橋接器等網絡儀器、入侵個人電腦和局域網絡、破解密碼、在軟體和操作系統中植入後門、弱化加密軟體等等。面對如此強大、如此資源豐富、如此沒有道德誠信觀念的對手,怎樣才能保護我們的網上通訊?
轉貼:NSA 收集網民的通訊錄,收獲豐富
原文網址:NSA 收集網民的通訊錄,收獲豐富 2013-10-17-轉貼 (原文網站已關閉)
斯諾登最新披露的文件指出,美國國安局 (NSA) 透過竊聽網絡主幹上的通訊數據,收集網民的通訊錄,包括從 Google、Yahoo、Microsoft、Facebook 等服務供應商的電子郵件地址簿和即時通訊功能 (IM) 的好友列表,收獲十分豐富。由於是直接在網絡上竊聽,國安局只需與網絡供應商如 AT&T 等合作,Google、Yahoo、Microsoft、Facebook 等反而毫不知情,也沒有得到他們的同意。其實 NSA 竊聽時何曾徵詢別人的同意?它就是王。
轉貼:新西蘭擬擴大情報機關從互聯網公司收集用戶數據的權力
原文網址:新西蘭擬擴大情報機關從互聯網公司收集用戶數據的權力 (原文網站已關閉)
新西蘭正就一項極具爭議性的法案在國會進行二讀,該法案容許政府通訊安全局 (GCSB) 要求網絡服務供應商例如 Google、Facebook 等加入監控用戶通訊的機制。反對黨工黨表明強烈反對這項法案。Facebook、Google、Microsoft 和 Yahoo 較早時曾聯合致函新西蘭通訊部長表達對法案的關注,有趣的是,他們顧慮的不是用戶的隱私是否得到尊重或保護,而是法案與他們總部所在國家的法例存在衝突。
轉貼:Tom.com 協助 Skype 加入監聽功能以便進入大陸市場
原文網址:Tom.com 協助 Skype 加入監聽功能以便進入大陸市場 (原文網站已關閉)
斯諾登揭露美國國安局 (NSA) 與大型軟件商和網絡服務供應商聯手進行網絡監控,其中微軟及其即時通訊軟體 Skype 被點名有份參與。這件事令人回想 Skype 當年夥拍 Tom.com 進入中國市場的時候,曾經在 Tom.com 的協助下為了滿足中國政府的監控要求而在 Skype 中加入關鍵字過濾及舉報功能,微軟也曾經間接承認這項指責。
轉貼:D-Link 路由器有人為植入的後門,無需密碼可進入管理頁面
原文網站:D-Link 路由器有人為植入的後門,無需密碼可進入管理頁面 (原文網站已關閉)
崁入式系統安全研究員 Craig 發現 D-Link 路由器存在人為後門,可避開密碼驗證程序直接進入管理頁面。Craig 怎麼肯定這不是一個程式錯誤而是一個人為植入的後門?
轉貼:安全軟體 Metasploit 網站被黑客改頭換面?
轉貼:WhatsApp 的用戶的通訊幾乎可說沒有加密,任何人都可以隨意偷看
原文網址:WhatsApp 的用戶的通訊幾乎可說沒有加密,任何人都可以隨意偷看 (原文網站已關閉)
轉貼:加密程式出錯引致台灣身分證的保安功能作廢
原文網址:加密程式出錯引致台灣身分證的保安功能作廢 (原文網站已關閉)
台灣的身分證使用 RSA 公鑰加密技術來實現自然人憑證 (Citizen Digital Certificate),市民憑藉著憑證在網上確認自己的身份,使用政府的網上服務,例如交稅,汽車登記等。將於本年十二月在印度 Bangalore 舉行的 Asiacrypt 2013 會議,數位科學家將發表一份論文,指部分憑證存在致命的缺陷,讓攻擊者輕易偽冒憑證持有人的身份。產生憑證的系統都已經通過 FIPS 140-2 Level 2 和 Common Criteria 標準,所以有理由相信其他使用那些系統的國家所產生的憑證,都有相同的缺陷。若果一個科技先進的政府在緊守最佳操作原則下仍然出亂子,其他人應該怎樣做?
轉貼:完全不接上網的電腦
轉貼:秘密信件揭露德國政府監控國民的數據通訊
原文網址:秘密信件揭露德國政府監控國民的數據通訊 (原文網站已關閉)
德國明鏡雜誌得到一封機密信件 (Google 翻譯),揭露政府情報機關跟網絡服務供應商及電訊商有秘密協議,可以隨意監察國民的數據通訊。
轉貼:蘋果的軟體加密機制使 OS X 惡意軟體難以被檢測
互聯網的加密技術真的被 NSA 破解了嗎?
英國衛報、紐約時報、和 ProPublica 網站聯合公佈新一批斯諾登的機密文件顯示情報機關有能力破解大部份互聯網的加密通訊,我們日常使用的 HTTPS (網站使用的加密技術)、WPA2 (Wi-Fi 使用的加密技術)、PGP (電子郵件使用的加密技術)、AES (大部份加密檔案和硬碟的技術) 等等,是否不再安全?怎樣才能保障我們的隱私?
調查顯示近 90% 美國的網民已採取措施以免受監控
自從斯諾登爆出美國國家安全局(國安局)大規模監控互聯網的通訊,美國網民明顯對自身隱私的警覺性提高了,最近一項調查顯示近九成美國網民已採取某些措施以免受到監視。反觀香港及其他國家的媒體和網民對這宗醜聞卻反應冷淡,大都抱著隔岸觀火的心態,有些人冷眼旁觀這個從前自稱最民主自由的國家怎樣自甘墮落,有些人則注意斯諾登的材料中有否牽涉到自己的國家、地區或機構,沒有的話便一副事不關己、己不勞心的態度。
網站的「可入侵度」
WhiteHat Security 登出一張圖表,可用來評估一個網站的「可入侵度」(hackability),這是一個網站系統的安全檢查清單,網站符合的條件越多便越安全。
網絡上超過一半的流量並非由真人做成
網絡保安公司 Incapsula 最近的一項研究顯示,網站的流量中只有 49% 來自真實的人類。若果你用 Google Analystics 來追蹤網站使用者的資料,很抱歉,Google 只會替你分析這 49% 的資料,餘下的 51% 使用者是誰?Incapsula 說這包括了搜尋引擎、入侵程式、剽竊程式、濫發留言程式、和間諜程式,換句話說,31% 的網站流量都是有害的。
內容安全政策 (Content Security Policy) 是甚麼?
W3C 最近推出了「內容安全政策」(Content Security Policy, CSP) 的技術報告,建議在 HTTP 協定中加入一些新的標籤,希望可以令惡名照著的「跨網站攻擊程式」(cross site scripting, XSS) 永遠消失,至少令「儲存式」和「反射式」的 XSS 無法生存,至於「DOM 為本」的 XSS 可能仍需要開發人員繼續進行防禦。XSS 在 OWASP 的攻擊手段排名中名列第二,不少著名網站都曾受 XSS 攻擊,例如 Twitter、Facebook 等。究竟「內容安全政策」是甚麼?作為開發人員,對你有甚麼影響?
定期更改密碼的迷信
你的公司、網絡服務商、電郵系統、網上銀行等等,總會提醒你定期更改密碼,例如每三個月或者半年,有的甚至要求用戶最近幾次的密碼不能相同,其實這個方法是基於一些錯誤的假設、對入侵技術的無知 (不要以為系統管理員都是專家,哈),不論從運作上還是技術上來說,這不單不能保障你的帳號,反而使你的帳號更容易被入侵。
用 PHP 實現 HTTP 身份驗證
HTTP 身份驗證 (HTTP authentication) 是一種十分常用而容易實作的驗證方法,它倚賴網頁伺服器的內置功能,大量縮短所需編寫的程式碼,對於用戶驗證的要求不高的系統,是一個很實用的驗證方法。Evert Pot 在他的[網誌][1]上討論了如何用 PHP 實作這種用戶驗證。
Google 的 Chrome 和蘋果的 Safari 的密碼管理系統最弱
密碼管理一直是受到忽視的瀏覽器安全性項目,資訊科技顧問公司 Chapin Infomration Services (CIS) 最近對 Google 的 Chrome、微軟的 IE 7、Opera、蘋果的 Safari 和 Firefox 3 五大瀏覽器的密碼管理系統進行測試,發現沒有一個能完全通過他們的 21 項測試項目,表現比較好的是 Opera 和 Firefox,但也只能通過 7 項測試,最差的是 Google Chrome 和 Safari,兩者只通過兩項測試。
微軟和 Google 的 Captcha 先後被破解
我們曾經介紹過利用 Captcha 技術來阻截機器人程式進入系統,與及在系統上登記帳號,對於公開的網上服務來說,Captcha 已經成為必備而有效的攔截工具,不過 Websense 最近報導,微軟的 Live Mail 及 Google 的 Captcha 均已被黑客破解,這兩宗事件對我們作為用戶有甚麼影響?對我們作為系統開發者/管理員又有甚麼啟示?
如何評價一個密碼的質量?
現代人是一種沒有密碼不能存活的生物,我們接觸的所有電腦系統,都要依靠密碼來鑑定訪客的身份,辦公室的大門、家裏保險箱的門鎖,可能都要靠密碼來啟動,甚至商號提供的會員證,也要憑密碼鑑定你的身份。密碼既然如此重要,專家們很久以前便提供了各式各樣的建議幫助我們建立安全可靠的密碼,例如混合使用大小寫的英文字母,甚至加入數字和標點符號,增加密碼的長度,避免使用跟個人資料有關的文字或數字,定期更改密碼,不要重複使用以前的密碼,使用 L33t 技術……曾經有人慨歎,若果完全依照專家的建議,創造出來的密碼必定是難以記憶,用戶們最終會把密碼寫在某個地方(電腦旁邊的小紙條或者錢包裏面),反而變成保安上的大漏洞。怎樣才是好的密碼?高質量的密碼應該具備甚麼條件?
防止濫發電郵或文章的線上工具 reCAPTCHA
曾經管理網站,特別是論壇、網誌之類容許訪客寫文章的網站,一定見識過濫發文章/濫發電郵的威力,所以很多網站管理員都會安裝/啟動一個稱為 Captcha 的驗證系統,當訪客貼文章的時候,要從一個圖像中辨認出其中的文字然後連同文章一拼呈交,這些圖像都是隨機產生、充滿訊燥、字體故意被扭曲的圖像,只有人類才有能力正確辨識,這樣便可以杜絕網絡上的壞蛋使用機器人大量貼出文章。
兩個可能洩漏系統資訊的 PHP 漏洞
系統保安網站 Hacker Webzine 最近有一篇文章,介紹兩個可能洩漏伺服器系統資訊的 PHP 漏洞,第一個有關伺服器變量的處理方法,第二個則有關 PHPSESSID 對話標識在用戶端被修改,嚴格來說這兩個不是 PHP 語言的毛病,只要編程人員小心謹慎,一切問題都可以避免。
SQL 注入攻擊新招
相信很多 PHP 的開發者都認識 SQL 注入攻擊(SQL injection),我們之前在「不可不知的 PHP 安全技巧」也曾經介紹過,最近 Gareth Heyes 在他的個人網誌提到一種新的 SQL 注入攻擊招式,Gareth Heyes 稱它做「SQL 反射注入攻擊(reflected SQL injection)」,很多人可能都會忽略。
研究顯示員工經常隨意抄下密碼
「每三個人便有一個把電腦密碼抄下,危害著他們的安全,公司應該採取更先進的方法來保護系統,例如生物測定等。」一個由全球性的調查機構 Nucleus Research 及 KnowledgeStorm 所做的研究顯示,很多公司用來增強資訊保安的措施並不湊效,其中包括定期更改密碼和藉著加插數字到密碼中令其更加複雜。
常見的 PHP 保安問題
HKPUG 經常報導專家們提出有關 PHP 安全性的忠告,其實很多忠告都是幾乎「常識」的水平,即使沒有專家的提點也不應該觸犯,但是我們仍然不斷在討論區見到網友編寫漏洞百出的 PHP 程式,看得人觸目驚心,這裏我們再次介紹一篇有關 PHP 安全性的建議。
8 招抵禦假冒者
Eric Lundquist 在 eWeek.com 表示美國聯邦貿易委員會(Federal Trade Commission, FTC)發表了一份如何預防假冒者的忠告,所謂「假冒者」是指那些以虛假的託詞來騙取你的個人資料的壞蛋,這些資料包括了你的身分證號碼、信用卡號碼、銀行帳戶號碼、或者任何與你個人相關的資料。
我知道你去過甚麼地方
Jeremiah Grossman 在他的網誌上用 JavaScript 編寫了一個實驗性的小程式,若果你使用的是 Firefox、Safari、Mozilla 或者 Netscape,一部份你曾經造訪的網站和瀏覽器上安裝的擴充模組便會顯示出來。由於這個程式在動態處理 CSS 上使用了一些 IE6 不兼容(但符合 W3C 的標準)的方法,所以無法在 IE6 上執行,但是已經有人把它修改變成 IE6 兼容的版本。
IPM 投票:最常見的 PHP 應用程式安全漏洞
Category: ssh
使用 TOTP 登入 SSH
以前我過討論 SSH 的安全設定 (這裏和這裏),建議大家使用同時使用密碼和公鑰來登入 SSH,強化系統的安全性。今天我介紹另一個用戶驗證機制給大家選擇,就是現今非常流行的一次性密碼,可以加入以上的機制成為三重驗證,或者自選其中兩者。
Category: Web design
reCaptcha 越來越令人討厭,我們有甚麼替代品?
Google 的 reCaptcha 是網站用來辨別訪客是否真人的工具,我在多年前曾經推介過它,認為 reCaptcha 既能有效防止濫發文章,又容易安裝,還能對公益事業作出貢獻。Google 在 2009 年收購了 reCaptcha 後大力推廣,現已成為最普遍使用的 Captcha 工具。很可惜 reCaptcha 現在變得越來越難辨認,網上不少人高呼「reCaptcha 令人討厭」,也有人認為 reCaptcha 令網站的使用率下降,reCaptcha 原來的公益成份在被 Google 收購後也變了質,現在解讀 reCaptcha 等於無償替 Google 當人肉 OCR,包括辨別 Google 街景圖中的文字。反對 reCaptcha 的氣氛在用戶和網站站長之間迅速蔓延,大家紛紛尋求 reCaptcha 的替代品。
網站開發人員必備的 20 張速記片 (cheat sheet)
網站開發人員每天需要周旋於 PHP (或其他伺服器端編程語言)、SQL、JavaScript、HTML、CSS、數據庫預存程序及一些不同用途的開發架構之間,總會有「執筆忘字」的時候,這時你可能會向 Google 或編程書籍求教。不過,網上不少好心人替我們便製了一些「速記片」(cheat sheet),方便我們隨時查閱,Anson Cheung 在他的網誌蒐羅了 20 張網站開發人員必備的速記片。
20 個線上測試網站速度的工具
人人都知道上網的人對於網站的速度耐性有限,所以你的網站的效能和顯示速度,是網站的可用性,甚至成功與否的關鍵。Jacob Gube 在他的網誌分享了 20 個線上測試網站速度的工具,可以用來測試網站的速度,和找出哪裏是效能的瓶頸,他建議你同時運用其中數個工具 (沒有一個工具具備所有功能),作為恆常性的測試手段。
利用 Data URL 加速你的網頁
對優化網頁效能有研究的人都知道,首要的任務是盡量減少 HTTP 請求 (http request) 的次數,例如把多個 JavaScript 檔案合併,把多個 CSS 檔案合併,利用 CSS 精靈和合併的小圖示等等,但是很多人都不知道還有一個 data URL 的密技,讓我們直接把圖像的內容崁入網頁裏面,這個密技的官方名稱是 data URI scheme。
幾件有關 favicon 你必須知道的事
甚麼是 favicon?
Favicon 是 favorite icon 的簡稱,幾乎所有專業網站都有 favicon,它是一個由不同解像度的圖標結合成的檔案,例如它可能結合了一個 16x16 和一個 32x32 的 .bmp 檔案於一身,Favicon 的檔案延伸名稱是 .ico。在大部分的瀏覽器,這個圖標會在網址旁邊或者在書籤頁裏面顯示。通常 favicon 反映了該網站的設計或者有關機構的商標。
助你節省油墨削減成本的 Ecofont
一間荷蘭營銷公司 Sprang 想出了一個節省打印墨水的聰明方法:在字體上打孔!他們新的 EcoFont 字體在每一個筆畫上打上有如瑞士奶酪般的孔洞,減少每一個字母的印刷面積,從而減低印刷時所消耗的油墨,Sprang 公開這款字體讓大家免費下載。據官方網站說,相比傳統的字體,這款字體平均可節省 20% 墨水。Sprang 在開發這個字體的時候,目標是在不犧牲可讀型的情況下,盡力降低字體的印刷面積,在嘗試過多種不同的方法後,最後他們採用圓形孔洞的形式,認為字體的基本外型必須保持完整,才能保持字體的可讀性。使用 EcoFont 不單因為節省墨水而節省金錢,而且有助於保護環境,減少浪費。
為你的網站制定備份策略
最近幾天接二連三有知名網站遭黑客入侵,包括討論區系統 phpBB 的官方網站(phpBB 仍然是安全的,漏洞出在網站上另一個應用系統)及網上書籤網站 Ma.gnolia,網站被入侵已經不是新聞,很多被入侵的系統內的用戶資料被盜取,例如網上求職者網站 Monster.com 上星期被入侵後,數以十萬計的求職者個人資料被盜;有些網站的資料被抹去而無法復原,例如 Ma.gnolia 便承認他們無法復原用戶的書籤,唯有透過網上其他資源盡力恢復用戶的公開資料,其中包括 Google 搜尋器的緩存影像。數據丟失固然嚴重,對網站聲譽和用戶信心的打擊更是無法彌補。
「確定/取消」還是「取消/確定」?
我們在設計用戶介面時經常會遇到一些細小、對易用程度未必有很大影響的問題,其中一個就是對話框中的按鈕次序:應該「確定/取消」還是「取消/確定」?用戶介面專家 Jakob Nielsen 分析了這個問題,他的建議是:跟隨平台的一般做法,比優化介面更重要。
靠右對齊的導航菜單減慢閱讀速度
網頁的導航菜單 (navigation menu) 的設計有甚麼要訣?有名的網頁介面顧問 Jakob Nielsen 的研究發現,文字靠右對齊的菜單令用戶讀起來更容易,除此以外,他還有幾項有關導航菜單的設計指引,見解獨到精闢,值得我們參考。
Yahoo! 專家告訴你怎樣為網站加速
Yahoo! 的首席網站優化工程師 Steve Souders 從去年三月至九月發表了一系列優化網站的 14 項原則性建議,他和他的團隊研究後發現,下載一頁網頁的時間,80% 是花在瀏覽器的工作上,這些工作其實可以透過簡單的優化來刪除掉,從而大幅提高網站的效率,我們不妨看一看這位專家給我甚麼建議。
防止濫發電郵或文章的線上工具 reCAPTCHA
曾經管理網站,特別是論壇、網誌之類容許訪客寫文章的網站,一定見識過濫發文章/濫發電郵的威力,所以很多網站管理員都會安裝/啟動一個稱為 Captcha 的驗證系統,當訪客貼文章的時候,要從一個圖像中辨認出其中的文字然後連同文章一拼呈交,這些圖像都是隨機產生、充滿訊燥、字體故意被扭曲的圖像,只有人類才有能力正確辨識,這樣便可以杜絕網絡上的壞蛋使用機器人大量貼出文章。
謹慎使用下拉選單
Jakob Nielsen 有一篇文章討論下拉選單作為用戶介面應注意的地方,文章寫於 2000 年,最近他針對滾輪滑鼠對下拉選單使用性的影響,補強了這一篇文章,對用戶介面有興趣的朋友,這是一篇不可多得的好文。
是時候放棄 Transitional DOCTYPES 了
Jack Pickard 在 Accessites.org 發表了一篇文章,建議大家以後在 HTML 中放棄使用 Transitional DOCTYPES。
教學文件:利用 DHTML 製作一個裁剪圖像的介面
網上有很多圖像處理、相簿管理的網上應用系統,容許我們把大圖像裁剪為較小的圖像,但是用戶必須輸入裁剪框的座標和大小,對一般人來說顯然十分困難,Dave Dash 在 Spindrop 發表了一篇教學文件,指導我們怎樣利用 DHTML(JavaScript + CSS + HTML)來製作一個靈活易用的圖像裁剪介面。
恰當地使用 Flash
在網站設計者的社區,Flash 一直是一個很具爭議性的話題,有些人認為 Flash 補充了 HTML 在互動方面的不足,使網頁更生動,提高了上網的趣味,但是有些人卻認為 Flash 屬於可有可無的花招,在某些情況下它反而成為使用者的障礙。
把文字大小的控制權還給用戶吧
Jakob Nielsen 是網上知名的網頁設計權威,他主持的 useit.com 被視為其中一個對網站/網頁設計理念影響最大的網站,這個網站在 Google 的頁面排名更是同類網站的表表者,網站內有關網頁設計的文章,全世界的網站開發者都視為金科玉律。
如何編寫動態網頁:結合 HTML、JavaScript 和 CSS 的範例
搜尋引擎編索引的極限:你的文章應該有多長?
網站的開發人員,特別是商業網站,對於如何針對搜尋引擎進行優化,使自己的網頁能夠在搜尋的結果中排得較為前列的位置,都進行過不少研究,也有無數針對「搜尋引擎優化(Search Engine Optimization, SEO)」的文章發表過,指導大家如何令搜尋引擎重視自己的網頁。
document.onload 完全破解
Dean Edwards 研究 document.onload 的缺點與及解決方法已經一段時間,現在他終於提出了一個跨瀏覽器而又簡潔的終極解決方案。
你的訪客來自哪些國家、哪些城市?
互聯網把全世界的網民聯繫起來,從地球的一端到達另一端只是數以秒計的時間,似乎大家所處的地理位置在現代的網絡世界已經沒有意義。但實際上我們仍有很多機會希望知道我們的訪客來自哪兒:
Category: nextcloud
Nextcloud 上傳檔案的錯誤訊息: Connection Closed
最近使用 Nextcloud 用戶端把一個檔案同步到伺服器的時候,總是出現 connection closed 的錯誤,感到莫名其妙,上網查找,竟然發現有無數人都遇到這個問題,而且問題已經積壓多年,我花了一些功夫終於找出問題的根源,並且解決了它。
Category: Business
注意!六個不良客戶的預警訊號
即使在經濟不好的年頭,我們有時也不得不拒絕一些生意,設計師 Alyssa Gregory 在她的網誌中說,雖然做好設計的工作是設計師的本分,但是也要警惕會增加生產成本的潛在的工作(及潛在的客戶),她列舉了六個不良客戶的預警訊號。
最好和最差的編程人員,效率平均相差 3 倍!
Jakob Nielsen 有一篇關於電腦相關工作的個人效率調查研究,發現越複雜的工作,人們的效率的差別便越大,其中最複雜的程式編寫工作,最好和最差的員工的效率平均相差 3 倍,最壞的情況下甚至達到 20 倍。研究所涉及的工作包括:文書處理、個人電腦使用、尋找資訊、網站使用、和程式編寫,若果把效率最高的 25% 與最低的 25% 員工相比,平均工作效率的比例是:
為你的網站制定備份策略
最近幾天接二連三有知名網站遭黑客入侵,包括討論區系統 phpBB 的官方網站(phpBB 仍然是安全的,漏洞出在網站上另一個應用系統)及網上書籤網站 Ma.gnolia,網站被入侵已經不是新聞,很多被入侵的系統內的用戶資料被盜取,例如網上求職者網站 Monster.com 上星期被入侵後,數以十萬計的求職者個人資料被盜;有些網站的資料被抹去而無法復原,例如 Ma.gnolia 便承認他們無法復原用戶的書籤,唯有透過網上其他資源盡力恢復用戶的公開資料,其中包括 Google 搜尋器的緩存影像。數據丟失固然嚴重,對網站聲譽和用戶信心的打擊更是無法彌補。
10 大求職必備的編程語言
Deborah Rothberg 根據一些資訊科技經理及網頁開發人員的經驗,總結出求職市場上 10 大必備的編程語言,雖然你不一定要全部懂得,但若果你正在考慮多學一種語言的話,從在這份名單中挑選一種準不會錯。
最優秀的開發人員的四種品格
Rob Walling 根據多年觀察的心得,在他的網誌羅列了最優秀的開發人員的四種品格,這是一篇很精彩的文章,Rob 引用 Facts and Fallacies of Software Engineering 書中所述:「 最優秀和最差劣的開發人員可以相差 28 倍。」下次面試員工的時候不妨檢驗一下他們是否具備這四項品格,你也可以藉此訓練自己成為最優秀的開發人員。
新的網頁等級分析工具
SEOMoz.org 開發了一個計算「網頁強度」的有趣工具,用來評估一個網頁或者網站的相對價值 (value) 重要性 (importance) 和可見性 (visibility)。
在公眾電腦上如何安全地輸入密碼?
這一篇報導跟 PHP 沒有甚麼關係,但作為技術人員我們經常都會遇到類似 PCMAG.COM 所述的難題,解決的方法也很巧妙,值得跟大家分享。
搜尋引擎編索引的極限:你的文章應該有多長?
網站的開發人員,特別是商業網站,對於如何針對搜尋引擎進行優化,使自己的網頁能夠在搜尋的結果中排得較為前列的位置,都進行過不少研究,也有無數針對「搜尋引擎優化(Search Engine Optimization, SEO)」的文章發表過,指導大家如何令搜尋引擎重視自己的網頁。
提問的智慧(3.2 版)
認識 IPv6
新一代的網絡協定第六版(IPv6)將會是互聯網的未來標準,我們有需要認識 IPv6 與網絡協定第四版(IPv4)有何異同,IPv6 有甚麼好處,與及認識有甚麼資訊產品兼容這個新標準。
開放源碼軟件作者的五大毛病
First Monday 很久以前刊登了一篇 Michelle Levesque 的文章,抒發他對開放源碼軟件作者的五大控訴,今天看來仍然很有啟發性:
微軟說:「開放源碼既不可靠,也不可信任」
據 CNET News 報導 ,BBC World (英國廣播公司國際頻道) 播出的一輯紀錄片 Code Breaker 中,微軟的歐洲總部副總裁暨首席技術總裁 Jonathan Murray 表示:「開放源碼既不可靠,也不可信任。」
Category: network
ESP32 連接 iPhone Hotspot
最近在編寫 ESP32 程式,嘗試把 ESP32 連接上 iPhone 的 hotspot,一直無法成功,但是連接到辦公室的 router 卻沒有問題,困擾了半天後,原來是因爲 iPhone 的 hotspot 預設只接受 5GHz 的訊號,而 ESP32 的 wifi 硬件只支援 2.4GHz 訊號。只要在 iPhone 的 Settings 撥弄一個設定,兩者便成功連接了。
Category: IT News
ChatGPT 與 Bard 的對決
在現今自然語言生成的 AI 領域,OpenAI 的 ChatGPT 無疑獨佔鰲頭,令人驚豔,各大 IT 界的巨頭紛紛仿效,意圖打造一個相似、甚至超越 ChatGPT 的「聊天機器人」,例如百度在今年二月發表了《文心一言》、Google 在今年三月發表了 Bard 等等。Google 在 AI 領域曾一度領先世界,當年 AlphaGo 先後擊敗李世乭和柯潔,轟動一時。究竟她現在打造的 Bard 能否與 ChatGPT 匹敵?Ars Technica 進行了一場簡單但有意思的比拼。
轉貼:加密程式出錯引致台灣身分證的保安功能作廢
原文網址:加密程式出錯引致台灣身分證的保安功能作廢 (原文網站已關閉)
台灣的身分證使用 RSA 公鑰加密技術來實現自然人憑證 (Citizen Digital Certificate),市民憑藉著憑證在網上確認自己的身份,使用政府的網上服務,例如交稅,汽車登記等。將於本年十二月在印度 Bangalore 舉行的 Asiacrypt 2013 會議,數位科學家將發表一份論文,指部分憑證存在致命的缺陷,讓攻擊者輕易偽冒憑證持有人的身份。產生憑證的系統都已經通過 FIPS 140-2 Level 2 和 Common Criteria 標準,所以有理由相信其他使用那些系統的國家所產生的憑證,都有相同的缺陷。若果一個科技先進的政府在緊守最佳操作原則下仍然出亂子,其他人應該怎樣做?
轉貼:秘密信件揭露德國政府監控國民的數據通訊
原文網址:秘密信件揭露德國政府監控國民的數據通訊 (原文網站已關閉)
德國明鏡雜誌得到一封機密信件 (Google 翻譯),揭露政府情報機關跟網絡服務供應商及電訊商有秘密協議,可以隨意監察國民的數據通訊。
轉貼:蘋果的軟體加密機制使 OS X 惡意軟體難以被檢測
互聯網上的廣告已經走到窮途末路?
Adblock Plus 是一個瀏覽器的附加元件 (addon),它藉著由社群共同建立的廣告網址黑名單,把網頁中的廣告過濾掉,使我們只看到乾淨整潔的頁面,沒有了令人分神甚至厭煩的廣告。對網民來說這真是救世主,但對廣告商和靠廣告維持網站營運的公司卻是大災難。現在 Adblock Plus 走出來對網上廣告商說:「你們的財路給我截了,但只要給我們一點買路錢,我會把你們的網址放入 Adblock Plus 的白名單,讓它們重見天日。」如此明刀明槍的勒索居然在光天化日之下發生,更離奇的是,已經有公司付了「贖金」,包括網上廣告巨人 Google。人們還能依靠 Adblock Plus 攔截廣告嗎?
免費的雲端伺服器
想一嘗在雲端伺服器開發軟件的感覺嗎?不妨試一試 Redhat 的 OpenShift Express,每個帳號可以發佈最多 5 個應用程式,每個應用程式將獲分配 1GB 硬碟容量,512 MB 記憶體,可以儲存不超過 4 萬個檔案,官方網站說保證無限期免費任用,伺服器支援 Java, Perl, PHP, Python, Ruby,數據庫方面,伺服器支援 MySQL, PostgreSQL, MongoDB,當然你還可以使用 SQLite。
使用電腦的七個好習慣
Stephen Covey 著有「7 Habits of Highly Effective People」,我也來邯鄲學步,寫一篇「7 Habits of Highly Effective Computer Users」,包括:定時儲存、防毒軟件、網絡安全、密碼管理、檔案組織、備份方案、伸個懶腰。被電腦欺負的人或許可以得到一些反擊的提示。
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 多種語言版本。
線上文書應用服務問卷調查
最好和最差的編程人員,效率平均相差 3 倍!
Jakob Nielsen 有一篇關於電腦相關工作的個人效率調查研究,發現越複雜的工作,人們的效率的差別便越大,其中最複雜的程式編寫工作,最好和最差的員工的效率平均相差 3 倍,最壞的情況下甚至達到 20 倍。研究所涉及的工作包括:文書處理、個人電腦使用、尋找資訊、網站使用、和程式編寫,若果把效率最高的 25% 與最低的 25% 員工相比,平均工作效率的比例是:
SitePoint 書籍特價發售,為澳洲火災災民籌款
免費下載 The Art & Science of CSS,只有 14 天
PHP 開發資源網 - 一個大陸的知識產業剽竊網站
最近在網上瀏覽的時候,偶然發覺一個大陸的 PHP 網站「PHP 開發資源網」,竟然抄錄了一些香港網頁開發網誌的文章,例如「Cute Editor for PHP 6.0 - 一個所見即所得的線上 HTML 編輯器」和「每一個 PHP 開發者都應該認識的十個開發專案」全文抄錄,一字不改,甚至圖片也直接連到我們的伺服器,真的有點受寵若驚,不過遍尋整篇文章,也找不到任何提及我們的字句或者連結。大陸甚麼都是假的,除了騙子,又一次親身體會。
Sun 出價 10 億美元收購 MySQL
Sun Microsystems(大陸稱為「昇陽電腦」)出價十億美元收購全球最受歡迎、最多用戶的開源數據庫系統 MySQL,在 Sun 及 MySQL AB 的網站均有發出聯合新聞公告。
goPHP5 工程全面結束
極具爭議性的 goPHP5 工程已經到了它的終點(實際的結束日期是 2008 年 2 月 5 日),它的其中一個創辦人 Robert Douglass 一直認為這個項目是成功的,他說:「自從推辦 goPHP5,已經有超過 100 個軟件開發項目和超過 200 個網絡主機支援 PHP 5.2。相對幾個月前,現在可以輕鬆地找到託管解決方案,軟件開發商亦可以使用 PHP 5 具吸引力的新功能,而不需要擔心他們的用戶別無選項。」
10 大求職必備的編程語言
Deborah Rothberg 根據一些資訊科技經理及網頁開發人員的經驗,總結出求職市場上 10 大必備的編程語言,雖然你不一定要全部懂得,但若果你正在考慮多學一種語言的話,從在這份名單中挑選一種準不會錯。
Google 開放光學字符辨識系統 Tesseract 的原始碼
Google 數月前靜靚地開放了光學字符識別系統(optical character recognition, OCR)Tesseract 的原始碼,放在 SourceForge.Net 公開下載。
全能線上文書處理器:Google Writely
Google 拼購了線上文書處理器 Writely 後,現在推出供網民免費使用。Writely 是一個以 Ajax 為基礎的 WYSIWYG(所見即所得)的文書處理器,可以讀取 Microsoft Word、RTF、OpenOffice、HTML 等文件,輸出的格式除以上各種外,還包括 PDF。和其他人合作編輯或者分享你的文件,也是 Writely 的特色之一。現時 Writely 仍處於 beta 階段,Google 表示已完成 62% 的開發工作。Writely 提供的服務包括:
OSI 處理開原碼執照氾濫的問題
開原碼執照氾濫的問題存在已久,GPL、LGPL、BSD 執照、PHP 執照、Apache 執照等等,弄得眼花撩亂,他們施加了甚麼限制?甚麼保障?互相之間兼容嗎?對於個人開發者或者小型公司來說,弄清楚各個執照的條款細節然後挑選一個合適自己專案的執照,並不是一件簡單的工作,何況其中還牽涉到不少微妙的法律問題,即使有能力聘請法律顧問的大軟件公司,面對一個包含眾多元件的大型專案,每一個元件有自己的執照的情況下,應如何制定最終產品的執照,也不是一件容易的事。這個現象可能對開原軟件的發展構成障礙,開原軟件的領導團體 OSI 去年(2005)終於組成了「執照擴散問題委員會」,研究解決的方案。
無心之失:十大爆笑公司域名
每一間公司都會為用公司的名字申請一個域名,但是很多人在選擇域名的時候顯然沒有深思熟慮,Independent Sources 列舉了十個公司的域名,屬於那種無心之失,但我們看起來卻是十分詼諧惹笑,以下其中幾個:
我的域名被搶佔了!
我們在註冊域名之前通常都會首先到一些 whois 或者域名註冊網站檢查,有人發現每當我們檢查後十多個小時,那些本來尚未註冊的域名總會被別人搶佔了,這正是一些域名黑客的新招式。
3 億 5,730 萬美金罰款對微軟來說微不足道
在布魯塞爾的歐盟監管機構在上星期三 (2006 年 7 月 12 日) 判決微軟觸犯了反壟斷法,利用視窗的市場優勢在伺服器市場驅逐對手,監管機構曾經要求微軟向競爭對手發放伺服器的技術細節,但是自 2004 年至今,微軟提供的資料無法令監管機構滿意,所以判處微軟罰款 3 億 5730 萬美金(折合港幣 27 億 8700 萬),若果微軟在 7 月 31 日前仍不就範,從 8 月 1 日開始微軟將要面對每天 385 萬美金(約港幣 3 千萬)的罰款!(相關新聞:http://www.eweek.com/article2/0,1895,1987852,00.asp)
中國大陸解除對 Google 的封鎖
提問的智慧(3.2 版)
認識 IPv6
新一代的網絡協定第六版(IPv6)將會是互聯網的未來標準,我們有需要認識 IPv6 與網絡協定第四版(IPv4)有何異同,IPv6 有甚麼好處,與及認識有甚麼資訊產品兼容這個新標準。
PHP 有望成為第三受歡迎的編程語言
根據最新一期 Tiobe Programming Community 的報告,PHP 在最受歡迎編程語言排行榜已經追貼 C++,有望進入頭三名的位置,頭兩名分別是 Java 和 C,落後在 PHP 和 C++ 後面的是 Visual Basic 和 Perl。
微軟說:「開放源碼既不可靠,也不可信任」
據 CNET News 報導 ,BBC World (英國廣播公司國際頻道) 播出的一輯紀錄片 Code Breaker 中,微軟的歐洲總部副總裁暨首席技術總裁 Jonathan Murray 表示:「開放源碼既不可靠,也不可信任。」
CodePlex 是否微軟版的 Sourceforge?
CodePlex 是一個由微軟建立的開放源碼專案伺服器,功能跟 Sorceforge 很相似,用戶可以在 CodePlex 建立和管理他們的開放源碼專案,CodePlex 提供一系列專案管理的功能:
Category: esp32
ESP32 連接 iPhone Hotspot
最近在編寫 ESP32 程式,嘗試把 ESP32 連接上 iPhone 的 hotspot,一直無法成功,但是連接到辦公室的 router 卻沒有問題,困擾了半天後,原來是因爲 iPhone 的 hotspot 預設只接受 5GHz 的訊號,而 ESP32 的 wifi 硬件只支援 2.4GHz 訊號。只要在 iPhone 的 Settings 撥弄一個設定,兩者便成功連接了。
Category: ios
ESP32 連接 iPhone Hotspot
最近在編寫 ESP32 程式,嘗試把 ESP32 連接上 iPhone 的 hotspot,一直無法成功,但是連接到辦公室的 router 卻沒有問題,困擾了半天後,原來是因爲 iPhone 的 hotspot 預設只接受 5GHz 的訊號,而 ESP32 的 wifi 硬件只支援 2.4GHz 訊號。只要在 iPhone 的 Settings 撥弄一個設定,兩者便成功連接了。
Category: HKPUG
暌違四年,再次上路
距離上次更新 HKPUG 相隔了四年,一段不短的日子啊!這段時間小弟從未放下對 IT 的熱誠,和對 IT 發展的關注,只是個人的時間有限,優先次序的問題令我難以抽時間寫 IT 文章。不過寫這些文章的其中一個目的,是給自己一個整理思緒的機會,一個總結思考和實驗的記錄,這些東西一旦不及時記下,很快便會遺忘,所以終於下定決心,從新執筆。
HKPUG 完全擺脫了 WordPress
HKPUG 完成了從 WordPress 轉換到 Hugo 的工程,你們現在見到的 HKPUG 頁面都是由 Hugo 建立的靜態網頁。所有舊文章都已搬遷到新系統,不過訪客的留言則無法搬過來,對於曾經留言的朋友,只能說聲抱歉。
從 WordPress 轉到 Hugo
我使用 WordPress 作為 HKPUG 和其他網誌背後的系統,已經很多年,作為一個用家,對 WordPress 的簡單易非常欣賞,但是作為系統管理員,也是有多年經驗的開發人員,永遠對效能、簡單、反應速度有本能的執着,所以,我現在正把 HKPUG 和其他網誌,轉到 Hugo。
重新開始
HKPUG 最近兩、三年由於我工作繁重而沒有更新,偶然收到一些朋友的查詢,有些甚至表示有興趣參予,都因為我自己也不知道 HKPUG 究竟何去何從而沒有回覆,希望朋友們見諒。
提問的智慧(3.2 版)
《提問的智慧》
我在網絡上渡過了不少日子,在很多不同性質的論壇上都留過足印,從初出茅廬的時候經常向前輩們請教,到現在花大部分時間回答網友的問題。在網絡這個奇異的世界,大家素不相識,沒有利害關係,也沒有利益輸送,問問題的人如何在這種奇異的關係中獲得所需的回答,實在需要搞清楚狀況,我經常遇到一些不懂得提問的人,以為既然不用付出分文,便隨便寫幾句說話,抱著反正沒損失的心態,看看可以弄得些甚麼答案,我們看到這種文章,心情好的時候便把他們耍一下,言不及義,半真半假地把他們舞得天旋地轉,心情不好的時候便索性不理,心想:去死吧,地球上人太擠了。
Category: Hugo
HKPUG 完全擺脫了 WordPress
HKPUG 完成了從 WordPress 轉換到 Hugo 的工程,你們現在見到的 HKPUG 頁面都是由 Hugo 建立的靜態網頁。所有舊文章都已搬遷到新系統,不過訪客的留言則無法搬過來,對於曾經留言的朋友,只能說聲抱歉。
Category: PHP
ImageMagick vs GD
PHP 應用程式中要轉換圖像格式、製作縮圖、或者施加濾鏡效果,大抵不出兩個選擇:GD 或者 ImageMagick,到底哪一個支援更多圖像格式?哪一個執行得較快?還有甚麼需要考慮?Jacek Barecki 寫了一篇文章比較兩者的表現。
RIPS: 自動分析 PHP 程式碼中的安全漏洞
系統開發員整天提心吊膽程式有否安全漏洞,用人手檢查程式碼非常費時失事,加上限於經驗和知識,總難免掛一漏萬,Johannes Dahse 開發的 RIPS 把這種悶蛋的檢查工作自動化,可能對你有幫助。
URL 重定向的次數上限
很多 PHP 開啟檔案的函式包括 file()
, fopen()
, file_get_contents()
等等,除了開啟本機硬碟中的檔案,也可以開啟網絡上的資源,例如:
如何防止網頁中的電郵地址被收集,成為濫發電郵的對象?
網絡上有很多所謂「爬網機器人」(spam bot),專門收集網頁中的各種資訊,其中一種它們最喜愛的東西就是電郵地址 (email address),因為這些地址可以儲存起來,日後用來發放「濫發電郵」(spam),或者賣給提供這些服務的公司。其實我們可以把電郵地址進行「HTML 編碼」(HTML encoding),避免電郵地址被這些討厭的機器人收集,但對真人用戶沒有絲毫影響。
PHP 設定方法比較
設定 PHP 有很多方法,最正式的可以使用 php.ini,但它會影響伺服器內所有 PHP 程式,最靈活的是 ini_set(),可惜不是所有東西都可以用它來設定。還有其他方法嗎?甚麼時候用甚麼方法最妥當?本文比較了 6 種不同的 PHP 設定方法。
日出日落時間
電台的交通消息報導經常都這樣說:「……今天的日落時間是黃昏 7 時,明早的日出時間是 6 時 13 分,根據交通法例,在日落之後至日出之前,車輛必須開著車頭燈……」用 PHP 計算日出和日落時間非常簡單。
沒有字母和數字的 PHP 程式
你見過沒有英文字母和數字的 PHP 程式嗎?這是可能的嗎?Gareth Heys 有一篇教學文件,示範如何不使用英文字母和數字,創造出 PHP 的變量、字符串、數字、陣列等。Alex Inführ 以此為基礎,構思了創造 PHP 函式的方法,他的程式只用了 7 個不同的字符:$_=+();
在 WampServer 安裝 PEAR
若果只用一句說話來解釋 PEAR,它是一個用來發佈和管理 PHP 可再用元件的系統,若果你還是不懂,下面有更詳細的說明,暫時你明白 PEAR 對 PHP 開發工作非常重要便夠了。很可惜的是 WampServer 並不包括 PEAR,所以我們需要手動安裝,幸好整個過程只需兩、三分鐘,讓我們看看應該怎樣做。
在網頁上展示產品的 3D 圖像
強化 PHP 效能
給網站設計人員的 Apps
用 PHP 5.4 製作進度列
Notepad++ 6.0 版本
網站開發人員必備的 20 張速記片 (cheat sheet)
網站開發人員每天需要周旋於 PHP (或其他伺服器端編程語言)、SQL、JavaScript、HTML、CSS、數據庫預存程序及一些不同用途的開發架構之間,總會有「執筆忘字」的時候,這時你可能會向 Google 或編程書籍求教。不過,網上不少好心人替我們便製了一些「速記片」(cheat sheet),方便我們隨時查閱,Anson Cheung 在他的網誌蒐羅了 20 張網站開發人員必備的速記片。
你對 Unicode 的認識有多深?
資訊科技日新月異,若果回看多年前的經典文章,還有多少東西至今仍然正確?我最近重看了 Joel Spolsky 在 2003 年寫的「The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)」,竟然絲毫沒有感到過時,當年他臭罵的白癡開發員,至今仍然充斥在我們的身旁,他極力澄清的誤解,至今仍然被很多自以為是的開發員奉為真理。
PHP5 類型提示功能
Amanda Steigerwalt 有一篇文章介紹 PHP 5 新引入的「類型提示」(type hinting) 功能,你可以在函式宣告中指定某些參數的數據類型。當你呼叫該函式,PHP 將檢查有關參數是否符合指定的類型。如果沒有,將引發一個執行時錯誤,並停止程式繼續執行。
HTML5 遊戲
儘管很多人都談論過 HTML5 寫的網頁遊戲,你也可能玩過一些,但大部份都是簡單的射擊、解謎、或平面移動的遊戲,不能跟 flash、Windows、甚至遊戲機為平台的遊戲多姿多采……直到你體驗過 Trigger Rally Online (TRO)。
PHP 相對時間顯示函式
我們經常在討論區 / 網誌上見到「….五小時前發表」、「….三個月前發表」之類表示時間的方式,這有別於傳統的「在 2012 年 3 月 11 日發表」,這種方式比較人性化,也使讀者更快速地建立一個概念這篇文章的歷史究竟有多久遠。Barrett 在他的網誌示範了怎樣用 PHP 寫一個函式,只要輸入一個 Unix 時間戳記 (timestmap) 它便會送回一個類似「五小時前」、「三個月前」的字符串。
PHP 5.4 新功能:你應該升級嗎?
期待已久的 PHP 5.4 終於出爐了,這一個版本特別令人期待,原因是它包含了很多原本要等到 PHP 6 才見得到的功能,由於 PHP 6 難產,這些功能便通通帶到 PHP 5.4,所以這次雖然只是升級了一個小版本編號,但包含的改動卻是巨大的,有些甚至會引致兼容性問題,PHP 開發人員不能輕忽視之。本文將會扼要介紹這個新版本的功能,與及討論一下在甚麼情況下你才需要升級到新版本。
PHP 的復活節彩蛋 (Easter Egg) 圖像
PHP 解譯器隱藏了四幅圖像和網頁,人們稱為「PHP 的復活節彩蛋 (PHP Easter Egg)」,即是驚喜的意思。我將介紹如何顯示這四幅圖像和網頁,與及它們有甚麼安全性隱憂。
在 Windows 7 安裝 WampServer
很多網站開發人員都喜歡在自己的桌面電腦上編寫和測試他們的程式,這樣做有幾個好處,首先你可以很容易測試程式,無須檔案上傳到伺服器,尤其是對於一些簡單的修改,可以節省很多工夫;另一個好處是程式的臭蟲不會隨便搗亂伺服器,無論它們有甚麼瘋狂的行為,也只是被侷限在你的電腦的某一個資料夾,絕不會惹怒服務供應商、伺服器上的其他用戶、伺服器上的其他系統、或者你的老闆。本文將會介紹如何在 Windows 7 上架設 Apache2、MySQL、及 PHP,也就是所謂的「WAMP」架構 - Windows + Apache + MySQL + PHP。
尋覓理想的 PHP 編輯器
你使用甚麼軟件來編輯 PHP 源碼、除錯、和管理專案?你對它滿意嗎?J Armando Jeronymo 最近因為某些原因不再使用本來的編輯器,於是展開了一趟 PHP / HTML / CSS / JavaScript 編輯器尋覓之旅,他在 How I Chose My Programming Editor 中講述了他怎樣訂立評審標準、遴選經過、與及他心目中的「完美」編輯器。
地理定位 (Geolocation):比你想像的容易
Jeremy Kendall 在 PHP Architecture 有一篇文章介紹怎樣使你的網站加入地理定位 (geolocation) 的功能,好處是可以根據訪客的身處的位置,提供適合的內容和語言,令他們享受更貼心的服務。加入這項功能比你想像的容易,甚至完全免費,Jeremy 提供了兩個解決方案,任何一個都可以在十分鐘內搞定。
PHP 開發人員比較喜歡以 Windows 為開發平台
以 Linux 為平台的網站伺服器遠比 Windows 的多,相信沒有人有異議,網站的編程語言則以 PHP 最受歡迎,相信爭議性也不大(可能的競爭對手只有 Java),這樣說來難道微軟這個電腦業的巨人在網站開發的環境中便毫無優勢嗎?未必,根據 Zend 最近針對全球使用 Zend Framework 開發人員所做的調查,在 Windows 上編寫 PHP 的人佔了 42%,排名第一,第二位的 Linux 則是 38.5%,MacOS X 則在第三位,19.1%。不過網站的運作平台 Linux 則以 85% 遙遙領先其他操作系統。
Google 教你優化 PHP,PHP 開發團隊指內容不確
Google 的 webmaster Eric Higgins 寫了一篇文章介紹怎樣優化 PHP,文章刊登不久,PHP 開發團隊其中一員 Gwynne Raskind 發文提出異議,指 Eric 所說的與事實不符,有些甚至完全相反,在 PHP 5 上幾乎沒有一項 Eric 的優化技巧能帶來實質的好處。我們摘錄了比較具爭議性的幾點,看看誰是誰非。
認識 PHP 的 Hashing Functions
Hashing function (散列函式) 在網頁應用中被廣泛採用,從數碼簽署、錯誤檢測、登入驗證、到壓縮儲存空間,由於它的原理比較複雜,很多人把它跟加密函式混淆,對於如何運用 hash function,如何選擇合適的 hash function,和它的優點缺點都不清楚,本文嘗試解答這些問題。
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 實現 HTTP 身份驗證
HTTP 身份驗證 (HTTP authentication) 是一種十分常用而容易實作的驗證方法,它倚賴網頁伺服器的內置功能,大量縮短所需編寫的程式碼,對於用戶驗證的要求不高的系統,是一個很實用的驗證方法。Evert Pot 在他的[網誌][1]上討論了如何用 PHP 實作這種用戶驗證。
十大技巧提升你的 PHP 實力
在 Smashing Magazine 的網站,Glen Stansberry 提出十個進階 PHP 技巧,可以即時提昇你的 PHP 編程實力,其中包括 SQL 注入攻擊的「作弊表」、簡化判斷句中的 else 部分、在不得已的情況下才使用正規表達式、三元運算子、Memcached 數據庫緩存系統等等,以下是詳細的內容。
PHP 碰上 Python
用來編寫網頁應用的語言多不勝數,人們總喜歡拿來互相比較,初學者也有興趣知道不同語言的特性,這次我們介紹 Ashish 所寫的「PHP 碰上 Python」,從語言特性到執行效能,比較 PHP 和 Python 兩種語言。
PHP 基本分頁技巧
作為一個網頁開發人員,你經常要用容易閱讀的格式把數據顯示給用戶,舉例說你要從數據庫讀取一份雇員名單,並在網頁上羅列出來,若果名單只有區區十多人,用一個簡單迴圈把所有人列印出來便好了,不是很簡單嗎?但若果你有五十名雇員又如何呢?一百人?一千人?把這麼多人一口氣羅列出來顯然不是一個好主意,Crayon Violent 在 PHP Freaks 寫了一篇教學文件,介紹如何透過 PHP 來實作分頁。
PHP 加密技術指南(二之二)
本文轉載了資深的 PHP 開發人員 Octavia Andreea Anghel 在 DevX.com 發表的 PHP 加密技術的教學文件,第一部分介紹了 PHP 預設的加密功能,及擴充模組 MCrypt 的安裝及應用方法。本文將會繼續介紹其他擴充模組。
PHP 加密技術指南(二之一)
資深的 PHP 開發人員 Octavia Andreea Anghel 在 DevX.com 發表了一篇 PHP 加密技術的教學文件,討論如何取得和安裝各種 PHP 加密技術軟件包,以提高你的 PHP 應用程式的安全性。本文是系列的第一部分,第二部分在這裏。在理想世界,加密和保安技術根本無須存在,但現實世界遠非完美,所以軟件開發商要花費大量時間和金錢,為應用程式設立保安措施,加密只是整個保安拼圖中的一小塊,其他的尚有 SSL / TLS、數碼證書、數碼簽名等等。本文將會介紹如何用 PHP 來實作最常見的加密算法,除了描述 PHP 預設的加密功能,你也會看到各種各樣加密函式庫和軟件包。
PHP vs .NET,如何抉擇?
很多人都曾經問過,或者被人問過,PHP 和 .NET 兩者哪一個比較好?Yahoo Answers 每隔一段時間便有人提出這個問題,很多網誌也參予了討論,大部分討論都集中於語言本身和開發工具的優劣,這方面受很多主觀因素影響,所以討論永遠沒完沒了,一位資深的新加坡 PHP 兼 .NET 開發人員在他的網誌上從另一個角度看這個問題。
PHP 是否理想的第一語言?
根據最新的統計,全球三份之一的網站使用 PHP 作為開發語言,儘管如此,還是不斷有懷疑論者質疑,PHP 是否一個好的編程語言,資深芬蘭 PHP 開發者 Jani Hartikainen 在他的網誌說:「PHP 是偉大的!」他甚至鼓勵初學者以 PHP 作為第一語言。
2008 年 4 月 PHP 使用統計
Nexen 發表了 2008 年 4 月份的 PHP 使用統計,他們調查了 2,800 萬個伺服器,涵蓋了 200 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,250 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
得到更好 PHP 工作的十個秘訣(第一部份)
經常有人埋怨市場上付給 PHP 開發人員的工資太低,或者 PHP 開發人員競爭激烈以致找工作困難,也有人說 PHP 開發人員的地位比不上其他編程語言,例如 Java 或者 Oracle 數據庫的 PL/SQL。PHP Classes 的 Manuel Lemos 為廣大的 PHP 愛好者提供十個找工作的秘訣,這些秘訣其實並不侷限於 PHP 的開發人員,所有資訊科技行業的工程人員都可以從中得到某些啟示。
網頁剪輯應用實例──用 PHP 製作一個「當年今日」的物件
網絡上有數以千計提供服務網頁的網站,它們供應有趣的,甚至富有教育性的資訊,你可以把這些資訊整合到你的網頁裏面,或者製作一個小裝置 (widget) 讓其他人無縫地整合這些資訊到他們的內容傳送平台。Hasin Hayder 在他的網誌介紹怎樣用 PHP 剪輯 Scopesys 的網頁製作一個「當年今日」小裝置。
Zend 認證工程師
不少 PHP 開發者都認同考取 Zend 認證工程師 (ZCE) 是一個確立個人 PHP 開發水平的重要一步,它也可以用作評估自己的技能,與及向同事和潛在客戶展示自己的經驗的途徑。Zend 在他們的網頁介紹了考取 Zend 認證工程師的好處。其中一位 ZCE Alex Netkachov 在自己的網誌分享他考取這個資格的經驗:甚麼是 ZCE,如何準備,如何通過它,通過它之後會發生甚麼事。
2008 年 2 月 PHP 使用統計
Nexen 發表了 2008 年 2 月份的 PHP 使用統計,他們調查了 2,770 萬個伺服器,涵蓋了 200 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,260 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
PHP 5.3 的新函式:date_create_from_format()
PHP 的其中一位主要貢獻者 Derick Rethans 在他的網誌上表示,PHP 5.3 將會提供一個比 strtotime() 和 date_create() 函式更有彈性的新函式 date_create_from_format() 與及 DateTime 的新靜態成員函式 createFromFormat(),回應 PHP 社群長期以來提出的要求。
教學文件:CodeIgniter 快速 PHP 應用開發
CodeIgniter 是一個有名的 PHP 開發架構,它以嚴格的 MVC 架構、完備的文檔和簡單易學成為很多 PHP 開發者喜愛的開發工具,很多開源系統由於都是靠社群自發地開發和維護,這類社群對編寫文檔一向不太熱中,所以 CodeIgniter 完整的文檔便顯得特別有吸引力。Akash Mehta 在 Developer Tutorials 網站上發表了一篇 CodeIgniter 的教學文件。
PHP 5.3 的新常數:__DIR__
雖然 PHP 5.3 尚未推出,但是它的新功能在網上已經被熱烈討論,官方預計的推出日期是 2008 年第一季,但是延期出貨是軟件工業的不成文規矩,在等待的同時,不妨研究一下這個新版本的各項新功能。
如何成為一個更優秀的 PHP 開發者
Akash Mehta 在他的網誌中討論了五個成為更優秀 PHP 開發者的方法。Akash 的目的是要提高你的生產效率、少寫代碼、並讓你的 web 應用程序實現更多功能。
2008 年 1 月 PHP 使用統計
Nexen 發表了 2008 年 1 月份的 PHP 使用統計,他們調查了 2,870 萬個伺服器,涵蓋了 200 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,250 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
延遲靜態綑綁的說明及範例
「延遲靜態綑綁」(late static binding)一直是 PHP 社群的熱門討論話題,隨著 PHP 5.3 得來臨,這項功能終於得以實現。究竟何謂「延遲靜態綑綁」?它有甚麼用處?Sean Coates 在她的網誌提供了一個範例說明這種技術,並介紹它的實際用途。
goPHP5 工程全面結束
極具爭議性的 goPHP5 工程已經到了它的終點(實際的結束日期是 2008 年 2 月 5 日),它的其中一個創辦人 Robert Douglass 一直認為這個項目是成功的,他說:「自從推辦 goPHP5,已經有超過 100 個軟件開發項目和超過 200 個網絡主機支援 PHP 5.2。相對幾個月前,現在可以輕鬆地找到託管解決方案,軟件開發商亦可以使用 PHP 5 具吸引力的新功能,而不需要擔心他們的用戶別無選項。」
PHP 的三元運算符
每一個 PHP 開發者都應該認識的十個開發項目
I-nfotech 有一篇文章列出十個每一個 PHP 開發者都應該認識的開發項目,我們都知道 PHP 擁有全世界最龐大的原碼程式庫(不知道的話現在仍不算遲),所以在開發過程中幾乎所有你需要的功能都已經有人寫好了,你只需插入你的項目中便可以使用,文章的作者有多年的網頁開發經驗,他總結多年的心得,列出了十個每一個 PHP 開發者都應該認識的 PHP 函式庫。你的要求可能不同,但這篇文章的內容仍然很值得參考。
2007 年 8 月 PHP 使用統計
Nexen 發表了 2007 年 8 月份的 PHP 使用統計,他們調查了 2,710 萬個伺服器,涵蓋了 240 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 1,180 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
Yahoo! 的 PHP 面試題目(第四部份)
若果你已經看過 Yahoo! 的 PHP 面試題目(第一部份)、第二部份及第三部份,請繼續觀看最後一部份第十七至第二十二題。首先會先列出題目,題解會寫在後面。
Yahoo! 的 PHP 面試題目(第三部份)
若果你已經看過 Yahoo! 的 PHP 面試題目(第一部份)及第二部份,請繼續觀看第三部份第十一至第十六題,其餘題目已經在第四部份轉載。每一部份的都會先列出題目,題解會寫在後面。
Yahoo! 的 PHP 面試題目(第一部份)
有否想像過網絡界的巨頭如 Google 和 Yahoo 怎樣評審應徵者的 PHP 水平?Nick Halstead 在他的網誌列出了 22 道 Yahoo! 在正式面試前給應徵者的 PHP 筆試題目,Matt Wilkin 看到後一時手癢,在他自己的網誌上寫下了詳細的題解,你不妨也測試一下自己的 PHP 就經到達了哪一個水平。我們會把這 22 道題目連同 Matt Wilkin 的提解分開數部份譯載,每一部份的都會先列出題目,題解會寫在後面,第二部份、第三部份和第四部份也已經刊登。
Cute Editor for PHP 6.0 - 一個所見即所得的線上 HTML 編輯器
Cute Editor for PHP 新推出了 6.0 版本,這是一個「所見即所得」(WYSIWYG)的線上 HTML 編輯器,PHP 應用開發人員可以藉著它把傳統的 HTML textarea 換成一個功能強大的所見即所得內容編輯器,這個編輯器可以在多種瀏覽器上運行,包括 IE、Firefox、Mozilla、Netscape、和 Safari,在無數免費的線上 WYSIWYG 編輯器可供下載的情況下,以港幣一千元購買這個編輯器是否值得呢?
兩個可能洩漏系統資訊的 PHP 漏洞
系統保安網站 Hacker Webzine 最近有一篇文章,介紹兩個可能洩漏伺服器系統資訊的 PHP 漏洞,第一個有關伺服器變量的處理方法,第二個則有關 PHPSESSID 對話標識在用戶端被修改,嚴格來說這兩個不是 PHP 語言的毛病,只要編程人員小心謹慎,一切問題都可以避免。
2007 年 7 月 PHP 使用統計
Nexen 發表了 20076 年 7 月份的 PHP 使用統計,他們調查了 1,120 萬個伺服器,涵蓋了 240 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 2,610 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
PHPDocumentor 釋出 1.4.0 版
PHP Documentorr 是一個自動從原碼抽取注釋,然後產生 API 說明檔的工具,功能跟 Java 世界的 JavaDoc 差不多,分別是 PHP Documentor 是用 PHP 寫成。它的輸出檔案包括 HTML、PDF、CHM 和 XML DocBook,使用 Smarty 產生輸出檔案,所以改變輸出的排版格式十分簡單容易,所有原碼都有語法醒目顯示。使用方面,PHP Documentor 可以透過命令行或者網頁介面操作,運作速度極快。兼容 PHPXRef 和 JavaDoc 的注釋標籤,另外又有它自己的定義的標籤,構成功能強大的文檔產生工具。
PHP Web Application Framework 1.3
PhpWebApp 是一個應用開發架構,使得開發以關係數據庫為基礎的 PHP 網頁應用程式更加容易和簡單。它透過從 XHTML 延伸出來的 XML 模板,把設計和改變佈局的工作,從邏輯的實作中分割開來。它也藉著提供事件為本的編程模式,簡化應用程式邏輯的實作。此外,PhpWebApp 力求為網頁應用開發人員提供模塊化和代碼重用。
PHP6 添加「命名空間」功能
「命名空間」(namespace)一直是 PHP 用家強烈要求的功能,據 PHP Magazine 的報導,「命名空間」終於首次放入 PHP6 的原碼庫(CVS)公開測試,當廣大的 PHP 社群為了從 PHP4 升級到 PHP5 而鬧得熱烘烘,PHP6 正以穩定的步伐向著正式推出的階段邁進。根據 Wikipedia 命名空間的意思是:
PHP4 正式進入倒數
這一次是真正的官方消息了── PHP.net 剛剛宣布 PHP4 只會開發至 2007 年年終,此後 PHP4 便不再會有新版本,即使是嚴重安全性補丁,也只會支援至 2008 年 8 月 8 日!
向 PHP5 過渡……
PHP5 推出已經三年,但是根據最新的 PHP 使用統計,在所有使用 PHP 的網站中,PHP5 的採納率不足 10%,於是有人在網上發起「向 PHP5 過渡」運動,以 2008 月 2 月 5 日為目標,期望主要的應用程式開發團隊,與及服務供應商和系統管理員,把旗下的 PHP 系統轉移到 PHP5,能夠做出這個承諾的,他們的商標都會在「向 PHP5 過渡」的網站上刊登。
2007 年 6 月 PHP 使用統計
Nexen 發表了 2007 年 6 月份的 PHP 使用統計,他們調查了 1,090 萬個伺服器,涵蓋了 240 萬個 IP 地址,刪除沒有架設網站、無法聯絡、網絡服務供應商和使用 domain parking 的網域後,共有 2,550 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
在 Windows 中自行編譯 PHP5 和 PHP6
有沒有想過嘗試一下最新的 PHP 功能?我們在 PHP 的下載頁面可以找到 PHP 的原始碼,只要配置好安裝設定檔,準備好所需的編譯工具,便可以製作一個屬於你的 PHP,你可以自行決定需要甚麼模組,不需要甚麼模組,怎樣優化程式碼,甚至安裝補丁,測試最新的版本和功能。
十大 PHP MVC 開發架構
又一個「十大排名榜」,這一個由 Jehzeel Laurente 列出的十大 PHP MVC 開發架構,是作者根據他的個人經驗和喜好選取的,其中有一些是響當當的著名牌子,也有一些較冷門的架構。
正規表達式的樂趣
Harry Fuecks 在他的網誌中發表了兩篇有關正規表達式的文章,對於喜歡正規表達式強大功能的人來說,這無疑是不容錯過的,文章從最基本的概念出發,直到發展成一個具備獨立功能的應用都有詳細的描述,例如如何建立一個用戶名稱驗證器,怎樣進行尋找/取代等等。正規表達式的用途很廣泛,其中有一些重要的式樣很多情況下都用得著。
改善了骨架程式產生器的 PHPUnit3
「PHPUnit 可以幫你編寫 PHP 類別測試程式,它會分析 PHP 類的原始碼然後自動產生一個測試類的骨架程式。」PHP 專家兼 PHPUnit 的開發者之一 Sebastian Bergmann 在他最近的一篇網誌這樣說,他說在類別原始碼中使用最新支援的 @test 註解標籤(annotation) PHPUnit3 將會變得更加強大。
PHP 6.0 的轉變
PHP Hacks 有一篇報導介紹 PHP 6.0 將會有甚麼轉變,其中包括放棄三項最令人困擾的功能:register_globals、magic_quotes_gpc 及 safe_mode。第一項會引起巨大的安全漏洞,第二項會使數據混亂,也令到搬遷伺服器時產生不必要的困難,最後一項經常被人誤解,它的名字令人產生安全的錯覺。
教學文件:你可能從來未用過的 PHP tick
一名在 YoungCoders Computer Programmers Forum 的 co-administrator Mau 寫了一篇有關 PHP tick 的教學文件,介紹 tick 的用途和一些使用 tick 的範例。
Qmail 與 PHP 的 Mail() 函式
Tobias Schlitt 最近發現他的 ez Mail 元件與 Qmail 有點不咬弦,送出的郵件標題多了額外的換行字符,以致部分郵件閱讀器出現錯誤的郵件標題,甚至無法接收郵件。
常見的 PHP 保安問題
HKPUG 經常報導專家們提出有關 PHP 安全性的忠告,其實很多忠告都是幾乎「常識」的水平,即使沒有專家的提點也不應該觸犯,但是我們仍然不斷在討論區見到網友編寫漏洞百出的 PHP 程式,看得人觸目驚心,這裏我們再次介紹一篇有關 PHP 安全性的建議。
教學文件:用 PHP 產生 OpenOffice 文件
PHP DocWriter 是一個用來產生 OpenOffice.org XML(即 StartOffice/OpenOffice.org 文件)的 PHP 類別(class),它也可以直接聯繫 OpenOffice 應用程式來進行檔案格式轉換,把 OpenOffice.org XML 檔案轉換成任何 OpenOffice 支援的格式。
PHP5, Sqlite 及 Windows
在 Turn up the Crank 有一位作者分享他使用 PHP5、Sqlite、Windows 的經驗。作者需要一個數據庫儲存資料,由於涉及的資料處理工作很簡單,所以他選擇了 Sqlite,結果他發現:
2006 年 8 月 PHP 使用統計
Nexen 發表了 2006 年 8 月份的 PHP 使用統計,他們調查了 1,100 萬個網域,刪除沒有架設網站、無法聯絡、或者使用 domain parking 的網域後,共有 820 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
使用 vim 編輯 PHP 檔案密技
Windows 的用家可能對 vim 比較陌生,但是 Unix 的用家,尤其是資深的用家,vim 可是鼎鼎大名的文字編輯器,它強大的功能和可塑性使它成為 emacs 後第二受歡迎的編程工具,Tobias Schlitt 便發表了一篇文章介紹一些在 vim 中編寫 PHP 的密技。
教學文件:PHP 讀取、寫入和建立檔案
Jacques Noah 在 Dev Shed 發表了一篇 PHP 教學文件,介紹如何利用 PHP 來讀取、寫入和建立檔案。Jacques 從 Windows 和 Unix 環境下檔案的權限開始,然後利用大量例子和說明來講解如何透過 PHP 來讀取、寫入和建立檔案的步驟,也說明在多人編輯同一個檔案的情況下,如何鎖著檔案以防止衝突。
一個強化 PHP 安全性的擴充模組 Suhosin
Hardened-PHP 最近推出了 Suhosin 測試版(beta version),這是一個從原始碼層面提升 PHP 安全性的系統,所以不論是已知和尚未發現的安全性漏洞,不論這些漏洞出現在應用程式還是在 PHP 的核心部分,Suhosin 的安全關卡都可以防止這些漏洞做成破壞。
用 PHP 和 GD Library 處理圖像教學文件(第二部份)
Dennis Pallett 在 PHPit 發表了第二篇利用 PHP 和 GD Library 處理圖像的教學文件,HKPUG 曾經介紹過這個主題系列的第一篇文章,繼承第一篇的基礎知識,第二篇文章將介紹不同的放大縮小圖像方法、加添水印的技巧等。
IPM 投票:最常見的 PHP 應用程式安全漏洞
PHP 會被 Ruby 殺死嗎?
這個標題沒有惡意,只是用來吸引大家的注意力,文章的作者 Stefan Mischook 在他的網誌比較了 Ruby 和 PHP 兩種經常被人拿來比拼的網頁開發語言,事實上一些 PHP 社群對於 Ruby 近年推出的優秀(但並不完美)開發架構 Rails 有一點恐懼,藉著 Rails 的關係 Ruby 的普及程度大幅提高,對 PHP 構成一定的威脅。所以 Stefan 嘗試解答「PHP 會被 Ruby 殺死嗎?」
一些有關設計式樣(design pattern)的忠告
Stefan Mischook 在他的網誌說,設計式樣(design pattern)本身並不壞,只要用在恰當的地方,他說:「我們沒有理由用一部十八輪大卡車來拖動一張椅子。」他觀察到自從 PHP5 推出後,整個社群逐漸向著高階的編程技術發展,例證包括廣泛地使用物件導向概念和設計式樣。常用的設計式樣包括:
在 PHP 數據庫應用中五種常見的錯誤
數據庫跟其他工具一樣,若果不正確地使用,很容易出現濫用的情況,Jack Herrington 在一篇文章中說,你可以在 PHP 應用程式中建立數據庫、存取資料,然後在其上編寫商業邏輯,達成這些目標很有方法,可惜很多人仍然把事情弄糟。在這篇文章中他闡述數據庫設計,和存取數據庫的 PHP 程式的五種常見毛病,還有如何避開這些毛病,文中並附有大量實例。這五種毛病是:
我們需要開發架構嗎?
John Taber 承認網絡上已經有很多開發架構的宣傳和喧鬧聲,但是他仍然要在他的網誌中問:「我們需要開發架構嗎?」他還提出了其他問題,包括「一個網絡程式應該具備怎樣的結構?」、「怎樣才能輕快而有效率地完成工作?」他經過詳盡的研究後把意見按發表者的性格分為三類:豪情蓋天的開發人員、Rails 的忠實支持者、有實力的應用程式開發者。他認為自己正是第三類人,就是那種不在乎甚麼語言、甚麼架構,最重要把事情做好,程式容易維護,與及可以把成品儘快推出市場的開發策略,這類人需要的正是開發架構。
五種常見的 PHP 設計樣式 (design pattern)
「設計樣式」(design pattern) 這個概念最早是由軟件界「四大寇」(即 Erich Gamma, Richard Helm, Ralph Johnson, 和 John Vlissides)所撰寫的 Design Patterns 中提出,軟件開發者累積多年的經驗,知道在某些特定的情況下使用特定的技巧,可以得到最有效率和最好的結果,這些標準技巧就是所謂的「設計樣式」。
2006 年 6 月 PHP 使用統計
Nexen 發表了 2006 年 6 月份的 PHP 使用統計 ,他們調查了 1,100 萬個網域,刪除沒有架設網站、無法聯絡、或者使用 domain parking 的網域後,共有 550 萬個網站參與了這次統計,內容摘要如下,統計的方法可參閱 la section phpversion。
三個用 PHP 開發的 FAQ 系統
Steven Choy 在他的個人網頁介紹三個由 PHP 開發與及使用 MySQL 的免費 FAQ 系統,透過 Google 他搜索到一些使用這三個系統的網站,可以讓我們實在地看一下這幾個系統的使用情況。Steven 說:
50 大受歡迎的 PHP 編輯器
Justin Silverton 在他的個人網誌列出了首 50 大受歡迎的 PHP 編輯器,網羅了免費和商業性的軟件,排列首位的是 PHP Edit 1.2.5,這是一個在 Windows 上操作的 PHP 編輯器,同時提供免費、共用及商業性的許可證,第二位的是 Dreamweaver 8,一個在 Windows 中操作的商業軟件,NuSpere 的 PHPED 4 則緊隨其後,這一個商業性編輯器可以在 Windows 和 Linux 上運作。以下的圖像顯示 Silverton 所列出的首 10 位 PHP 編輯器:
PHP 五大常見保安問題
OWASP 發表了一篇名為 PHP Top 5(PHP 五大常見保安問題)的文章,SANS Top 20 2005’s PHP Section(2005 年度 SANS 互聯網 20 大安全漏洞 PHP 章節)就是根據這一篇文章的研究而寫成,研究的方法是在 Bugtraq 上搜尋所有包含 PHP 的文章,對每一個個案進行分析及分類,然後作者列出五大最常見的保安問題,與及他們的預防方法,在文章的末尾做這還列出了一些參考資料,對於編寫安全堅固的 PHP 應用程式很有幫助。
PHP 和 Ajax 初學者教學文件
IBM 的 developerWorks 有一篇介紹如何使用 PHP 和 Sajax 來編寫簡單應用程式的教學文件,很多人對 Ajax 這種嶄新的網頁技術都認識不深,實際運用它來編寫網頁的更少,這篇文章透過建立一個簡單的相簿系統,從純粹使用 PHP 開始,逐步加入 Ajax 功能,中間加插對 Ajax 的介紹,使讀者明白 Ajax 的特色,它如何突破了傳統的網站設計理念,怎樣在實際的設計中加入 Ajax 的元素。
如何選擇 PHP 架構?
若果說每隔幾天便有一個新的 PHP 的開發架構推出,一點也不誇張,網上也有不少討論哪些架構「最好」,哪些最受「歡迎」之類的文章,但是對於如何選擇一個合適你的架構卻鮮少論及,針對這個問題 Marz 提出了他的見解。
用 PHP 控制 CSS
在 thecssweblog 有一篇由 Amber Rhea 寫的有關使用 PHP 來動態控制 CSS 的文章。文章引述 Patrick Fitzgerald 另一篇有關使用 PHP 來控制顏色的文章。
如何選擇 PHP 架構
PHP Class Repository 的創辦人 Manuel Lemos 在他的網誌寫了一篇長文,提出一些選擇架構的忠告,也解釋了為何有些架構比其他架構更受歡迎,受到更廣泛的注意。最後他列出了一串架設 PHP Class Repository 的程式包。
PHP Session 的生命週期:一次抓臭蟲的經歷
CentreSource 的技術員 Chris Wage 寫了一篇文章,以偵探故事的形式描述他如何解決一個 PHP Session 生命週期的臭蟲。
PHP 有望成為第三受歡迎的編程語言
根據最新一期 Tiobe Programming Community 的報告,PHP 在最受歡迎編程語言排行榜已經追貼 C++,有望進入頭三名的位置,頭兩名分別是 Java 和 C,落後在 PHP 和 C++ 後面的是 Visual Basic 和 Perl。
從 JAAS 想到 JCP,從 JCP 想到 PHP
讀了一份有關透過 JAAS 來進行 user authentication 的文章,感覺到 Java 的社區為 Java 規劃了不少系統架構的規格,JAAS 便是其中一個例子,這些規格統一了各種系統元件 (例如面板引進的介面,既方便了應用程式的開發者不用擔心他日更換了不同公司開發的元件,程式要作出很大的修改;元件的開發者也很放心他們寫的東西很容易給其他應用程式使用。
PHP 全球使用統計
Nexen 發表了 2006 年 4 月份的 PHP 版本安裝統計 ,他們調查了 7 千 7 百萬個網域,刪除沒有架設網站、無法聯絡、或者使用 domain parking 的網域,共有 770 萬個網站參與了這次統計。
Category: Browsers
開放設備實驗室
網頁開發人員都知道,互聯網的足跡早已跨越桌面電腦,延伸到日益廣泛的流動裝置上,很多開發人員發現,除了在桌面電腦的幾個瀏覽器,也要在越來越多的流動設備上測試網站的效能和表現,這一切說來容易,做起來困難。不是每一個人的桌面隨時放著十來二十部不同牌子,不同作業系統的流動設備,使用模擬器又有極多不足之處,那怎麼辦好呢?
Google 的 Chrome 和蘋果的 Safari 的密碼管理系統最弱
密碼管理一直是受到忽視的瀏覽器安全性項目,資訊科技顧問公司 Chapin Infomration Services (CIS) 最近對 Google 的 Chrome、微軟的 IE 7、Opera、蘋果的 Safari 和 Firefox 3 五大瀏覽器的密碼管理系統進行測試,發現沒有一個能完全通過他們的 21 項測試項目,表現比較好的是 Opera 和 Firefox,但也只能通過 7 項測試,最差的是 Google Chrome 和 Safari,兩者只通過兩項測試。
視窗版 Safari - 世界級的品牌,學生級的作品
蘋果把自家研製的瀏覽器 Safari 移植到視窗,已經有好一段時間,開始的時候傳媒爭相報導,蘋果也來勢洶洶,聲稱 Safari 是最快、最漂亮、最安全的瀏覽器,當時我也安裝了看看它的廬山真面目,但結果是安裝後程式無法執行,在蘋果的網站上找不到解決方法,不知是不是太新的緣故,Google 上也沒有人提及如何解決,此後我便沒有再試,直到最近 Safari 推出了 beta 3,心想發展得不錯啊,不妨再給它一個機會,於是今天再來一次。
我知道你去過甚麼地方
Jeremiah Grossman 在他的網誌上用 JavaScript 編寫了一個實驗性的小程式,若果你使用的是 Firefox、Safari、Mozilla 或者 Netscape,一部份你曾經造訪的網站和瀏覽器上安裝的擴充模組便會顯示出來。由於這個程式在動態處理 CSS 上使用了一些 IE6 不兼容(但符合 W3C 的標準)的方法,所以無法在 IE6 上執行,但是已經有人把它修改變成 IE6 兼容的版本。
document.onload 完全破解
Dean Edwards 研究 document.onload 的缺點與及解決方法已經一段時間,現在他終於提出了一個跨瀏覽器而又簡潔的終極解決方案。
網頁設計師使用甚麼瀏覽器?
W3 Schools 統計了它們網站的使用紀錄,得出了由 2002 年 1 月到 2006 年 5 月訪客的瀏覽器統計資料,不出意外地 IE6 佔有最大比例 56.7%,這個數字與大部分人以為 IE 佔有壓倒性優勢的想法不同,Firefox 則有 25.7%。
用 CSS 產生語法高亮顯示效果
語法高亮顯示(syntax highlighting)幾乎是每一個技術網站都必備的功能,比較以下兩個例子便很容易明白沒有這項功能是多麼令人懊惱的事:
Category: Software Development
Space 與 tab 的爭論
程式碼中究竟應該用 space 還是 tab 來縮排和對齊,可說是電腦科學界歷時最久,參與人數最多,爭論最激烈,但仍然沒有結論的話題。你只要在 Google 搜尋一下「space vs tab」,便可以感受到爭論是何等激烈。這裏我會分享我的方法,並盡可能解釋其中的原因和好處。
WampServer 的配置檔
WampServer 由 Apache 伺服器、MySQL 數據庫、PHP、及一些輔助程式整合而成,每一個元件 (component) 都有自己的配置檔,本文將會介紹其中常用的幾個。
從一個到一百萬個用戶 - 淺談系統擴展的方法
編寫網頁應用是一個進入門檻低的行業,只要隨便翻一、兩本書便可以學得有關的知識,架設一個基本的網站也很便宜,或許你早已有了自己的網站,甚至不只一個呢。隨著網站的知名度上升,訪客人數和數據流量也逐漸上升,真是值得高興。但是漸漸你發覺網站的反應速度變得緩慢,系統逐漸負荷不來,很多人開發人員這時開始手足無措,應該如何擴展系統呢?通常這些問題會落到一些擁有花哨頭銜例如系統架構師、高級架構師等等的人手中,唉,這些問題實在太難了,即使想一想它有多難也令你頭疼不已。
開放設備實驗室
網頁開發人員都知道,互聯網的足跡早已跨越桌面電腦,延伸到日益廣泛的流動裝置上,很多開發人員發現,除了在桌面電腦的幾個瀏覽器,也要在越來越多的流動設備上測試網站的效能和表現,這一切說來容易,做起來困難。不是每一個人的桌面隨時放著十來二十部不同牌子,不同作業系統的流動設備,使用模擬器又有極多不足之處,那怎麼辦好呢?
備份 WampServer 資料
本文將會介紹怎樣備份 WampServer 的資料,若果你不知道 WampServer 是甚麼,請先閱讀「在 Windows 7 安裝 WampServer」。為了方便說明,下面的例子假設 WampServer 安裝在預設的路徑 C:\wamp\,其他路徑的配置 (網站檔案的路徑、phpMyAdmin 的安裝路徑、MySQL 數據庫資料儲存的目錄等等) 均使用預設值,若果你安裝在其他路徑,請自行按需要更改。
程式開發員搏擊手冊
十五年前我在 www.developer.com{.smarterwiki-linkify} 索取了一份「Software Developer’s Combat Manual」(程式開發員搏擊手冊) 的海報,這張海報早已遺失,最近在 FutureTask 網站重遇這張海報,感到很有親切感,它的爆笑程度並未因歲月而稍減,我嘗試把它翻譯過來跟大家分享。原來的海報已不能在當年的網站找到,幸好有有心人把它掃描放上網。
在 WampServer 安裝 PEAR
若果只用一句說話來解釋 PEAR,它是一個用來發佈和管理 PHP 可再用元件的系統,若果你還是不懂,下面有更詳細的說明,暫時你明白 PEAR 對 PHP 開發工作非常重要便夠了。很可惜的是 WampServer 並不包括 PEAR,所以我們需要手動安裝,幸好整個過程只需兩、三分鐘,讓我們看看應該怎樣做。
非功能性測試
做軟件開發的都知道何謂功能測試 (functional testing),那就是確定軟件能夠正常運作,並且符合它的設計目標。非功能性測試 (non-functional testing) 你又知多少?Bill Holland 說非功能性測試包括了:
HTML5 3D 遊戲開發工具
免費的網頁應用開發工具
網頁設計涵蓋了多種從程式編寫到圖像處理的學問,建立了一套完整的工具應付這些工作,成本可以非常昂貴。然而,在名牌軟件上大灑金錢並非唯一選擇,Gary Marshall 在 .net 網站上[列出了 50 個免費的工具](http://www.netmagazine.c om/features/50-free-web-design-tools-rock),從圖像處理器到整合式開發環境 (IDE) 和內容管理系統一應俱全,一毛錢也不用花。
在 WampServer 安裝虛擬伺服器 (virtual host)
若果你需要同時開發數個專案,每個專案的程式碼都需要在網站的根目錄上執行,而且各有特定的伺服器設定要求,這時僅用一台網站伺服器便不敷應用,但使用多台機器,或者在一台機器上安裝多個伺服器又會增加管理的工作,虛擬伺服器便可解決這個問題,你只需為每一個專案安裝一個虛擬伺服器,各專案的程式碼便可以在獨立的環境下運作。
Category: HTML
如何設定網頁的 charset?
我們都知道每一個網頁都必須設定 charset 才能在瀏覽器上正確顯示文字,例如一個中文網頁使用 Big5 編碼,瀏覽器卻把它當成 UTF-8 來顯示,毫無疑問結果就是一堆亂碼。究竟瀏覽器是怎樣決定一個網頁的編碼?HTML4 和 HTML5 對此是否有規定?開發人員有甚麼需要注意?
如何防止網頁中的電郵地址被收集,成為濫發電郵的對象?
網絡上有很多所謂「爬網機器人」(spam bot),專門收集網頁中的各種資訊,其中一種它們最喜愛的東西就是電郵地址 (email address),因為這些地址可以儲存起來,日後用來發放「濫發電郵」(spam),或者賣給提供這些服務的公司。其實我們可以把電郵地址進行「HTML 編碼」(HTML encoding),避免電郵地址被這些討厭的機器人收集,但對真人用戶沒有絲毫影響。
免費的電子版 HTML5 海報
SitePoint 設計了一張 HTML5 海報介紹 HTML5 的新標籤,附有說明和範例,這款海報仍未付印,但 SitePoint 決定把電子版送給大家,只要在 SitePoint 註冊帳號並且訂閱他們的業務通訊,便可免費下載。
HTML5 3D 遊戲開發工具
HTML5 內容選單 (context menu)
HTML5 其中一項最有趣的新功能是內容選單 (context menu),只要使用新增的 menu
和 menuitem
標籤,開發人員便可隨意創造自己的內容選單,David Walsh 在他的網誌介紹了怎樣實作這項新功能。
SitePoint 發佈的 HTML 的參考手冊
SitePoint 發表了一份 HTML 的參考手冊,若果你正在編寫網頁,但不肯定所寫的是否正確的 HTML,這將會是一份很得心應手的參考資料。事實上好的 HTML 參考資料很難求,他們不是像 W3School.com 那樣只有簡單的列表,就是嚴重的不合時宜,SitePoint 這一份資料顯然下了不少功夫。
是時候放棄 Transitional DOCTYPES 了
Jack Pickard 在 Accessites.org 發表了一篇文章,建議大家以後在 HTML 中放棄使用 Transitional DOCTYPES。
主流網站濫用 DHTML 的經典範例
自從有了 JavaScript、CSS、DOM Scripting 等技術,無數網頁開發人員便費盡心思希望在 HTML 規範之外製作互動性更強的網頁,但有時這種努力換來的卻是一個無聊可笑的頁面。
Category: JavaScript
學習 JavaScript
科技博客 Derek Sivers 分享他學習 JavaScript 的經過,他強調目標是真正掌握 JavaScript 這個語言,不想抄捷徑、不要快速招數,我們來看看他的經驗。
JavaScript 面試測驗卷
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,但沒有路線圖或時間表。作為一個開發人員,你怎樣理解這場混亂?
為超連結加上有意義的圖示
正當你在網上愉快地瀏覽著,按了一下超連結後,瀏覽器突然跳出一個視窗,詢問你是否要儲存一個壓縮檔案,這是多麼不爽的事!若果你的訪客一早知道這個超連結會開啟一個壓縮檔案(你當然有很好的理由送出一個壓縮檔案,例如這是一個軟件包之類),他們的感受會好得多,也可以讓他們自行決定是否開啟,或者甚麼時候開啟。傳統的作法是在超連結後面加上一個檔案類型的提示,這可以是一句文字,也可以是一個小圖示,但要把所有這類型的超連結加上提示,除了手動以外,有沒有更方便快捷又不會出錯的方法?Toby Somerville 在 SitePoint 有一篇教學文件介紹兩個作法。
dhtmlxGrid 讓你用 XML、CSV 或 JSON 建立動態數據驅動的網格
總部設在俄羅斯聖彼得堡的 DHTMLX 公司更新其 dhtmlxSuite 套件,這是一套專業的 Ajax 網頁介面組件,採用開放原碼 GPL 執照,這次主要更新了套件中的「網格」(dhtmlxGrid) 和「樹格」(dhtmlxTreeGrid) 組件,包括了大量的新功能和改進,例如從 JSON 和 JavaScript 陣列載入數據、智能渲染、及分層數據網格的分頁支援,套件亦加入了新的「滑竿」(dhtmlxSlider) 組件。
jQuery 與 Prototype 的比較
較早前 jQuery 推出新版本,聲稱效能提高 300%,在差不多時間 Prototype 的最新版本也表示改善了效能(當然還有其他安全性的改進),所以 Piotr Solnica 決定比較一下 jQuery 和 Prototype 在不同瀏覽器上的表現,他在 Firefox、Konqueror、Opera 和 IE 上執行他的測試測網頁,網頁會執行九項操作,每一項都分別用 jQuery 和 Prototype 執行一次,為了公平起見,每兩項操作之間都分隔三秒。時間的量度精度達到千分一秒,為了進一步提高公平性,這個網頁會在每一個瀏覽器上執行三次,取執行時間的平均值。測試的結果可以觀看 Piotr Solnica 的列表。
JavaScript 是未來產品!
DOM 的集合 (collection) 不等於陣列 (array)
初學 DOM 的人很容易把節點集合(collection of nodes)與節點陣列(arrray of nodes)混淆,並且把節點集合當作陣列來使用,結果鬧出不少問題,浪費很多除錯的時間。James Edwards 有一篇文章介紹這兩者的分別,並且說明如何把節點集合轉換為節點陣列。DOM 有很多內建的 method 送回節點集合,所以釐清這兩個概念非常重要。
jQuery 簡介投影片
為甚麼選擇 Dojo?- 第二部份:Dojo 與其他 JavaScript 工具的比較
以下是 Dojo 官方網站上刊登的「為甚麼選擇 Dojo?」中文翻譯的第二部份,希望有助大家認識 Dojo 這個 JavaScript 工具庫,第一部份已於較早前發表。
為甚麼選擇 Dojo?- 第一部份:Dojo 整體概覽
現時網絡上有不少免費的 JavaScript 工具,很多都是完全免費而且素質很高,Dojo 作為其中一個市場的領導者,它的官方網站最近集合了支持者的意見,輯集成一份宣傳品,向外解釋為甚麼你應該選擇 Dojo,它比其他 JavaScript 工具有甚麼好處。我把這篇文章翻譯成中文,分為兩部分刊登,第一部份是 Dojo 的整體概覽,第二部份是 Dojo 與其他 JavaScript 工具的比較。你同意他們的看法嗎?你有喜歡的 JavaScript 工具嗎?為甚麼?
XMLHttp 不是 Ajax 唯一的方法
隨著 Ajax 近年來瘋魔全球的網站設計師,大家一提起互動網頁、Web 2.0、SOA(服務導向架構),便自自然然想起組成 Ajax 的幾個字: Javascript、XML。彷彿要做到那靈巧的互動功能,便一定要調用 XMLHttp,真的是這樣嗎?
教學文件:利用 DHTML 製作一個裁剪圖像的介面
網上有很多圖像處理、相簿管理的網上應用系統,容許我們把大圖像裁剪為較小的圖像,但是用戶必須輸入裁剪框的座標和大小,對一般人來說顯然十分困難,Dave Dash 在 Spindrop 發表了一篇教學文件,指導我們怎樣利用 DHTML(JavaScript + CSS + HTML)來製作一個靈活易用的圖像裁剪介面。
我知道你去過甚麼地方
Jeremiah Grossman 在他的網誌上用 JavaScript 編寫了一個實驗性的小程式,若果你使用的是 Firefox、Safari、Mozilla 或者 Netscape,一部份你曾經造訪的網站和瀏覽器上安裝的擴充模組便會顯示出來。由於這個程式在動態處理 CSS 上使用了一些 IE6 不兼容(但符合 W3C 的標準)的方法,所以無法在 IE6 上執行,但是已經有人把它修改變成 IE6 兼容的版本。
使用 JavaScript 及 DOM 製作立體透視圖及動畫
你有想像過單純用 JavaScript 和 DOM 便可以製作立體透視圖甚至動畫?James Edwards 在 Dynamic 3D with CSS and the DOM 中教導我們這方面的技巧。
在 IE 中的 JavaScript split() 函數
Harry Fuecks 在 Site Point 說了一個令他困惑的問題:IE 中的 JavaScript split() 函數並不符合規範。
如何編寫動態網頁:結合 HTML、JavaScript 和 CSS 的範例
document.onload 完全破解
Dean Edwards 研究 document.onload 的缺點與及解決方法已經一段時間,現在他終於提出了一個跨瀏覽器而又簡潔的終極解決方案。
用 ECMAscript 寫網頁
ECMAscript,很多人對這個名字感到陌生,說穿了它其實即是 JavaScript。JavaScript 在 1995 年由 Netscape 和 Sun 聯合推出,儘管技術上來說 JavaScript 和 Java 語言毫無關係,但是從當年發布 JavaScript 的新聞公告中,不難看出兩間公司蓄意暗示伺服器端的 Java 語言與瀏覽器端的 JavaScript 有某些聯繫,顯然這是基於市場推廣的考慮,但無論如何,JavaScript 就是這樣誕生了。
Category: Firefox
Mozilla 推出 Firefox 3.5
經過四個測試版本和三個 release candidate,Mozilla 終於把 Firefox 3.5 這個第二最流行瀏覽器的最新版本釋出,新版本帶來了私人瀏覽模式、更高的 JavaScript 效能、以及支援新的 HTML 5 標準,例如無需外掛的視頻和音頻播放。用戶可以在 www.getfirefox.com 下載 Firefox 的 Windows、Mac OS、及 Linux 的版本 70 多種語言版本。
Category: CSS
CSS 的 overflow 屬性
從 DOM 技術的角度看,網頁中每一件物件都是「箱」狀的,一段文字、一幅圖像、一個連結,它們的長度、闊度、位置等等都可以由 CSS 控制,若果你沒有設定箱子的大小,它會隨著內容的多寡而自行調整,確保容納並顯示所有內容,但若果箱子的大小被限制了,卻又無法容納所有內容的時候,這時便是 CSS 的 overflow 屬性發揮作用的時候。
20 個帶領 CSS 成為主流技術的網站
你對那些研究 CSS 的網站印象最深刻?Tim Wright 在 SitePoint 網站列舉 20 個推動 CSS 成為主流技術的網站,Tim 把這份名單分為「明顯」和「不那麼明顯」兩部份,前者是一些大部分人馬上想到的網站,遺漏了任何一個都可能會引發一場論戰;後者則包含一些我們可能會忽略,但是對推動 CSS 有重大貢獻的網站。
為超連結加上有意義的圖示
正當你在網上愉快地瀏覽著,按了一下超連結後,瀏覽器突然跳出一個視窗,詢問你是否要儲存一個壓縮檔案,這是多麼不爽的事!若果你的訪客一早知道這個超連結會開啟一個壓縮檔案(你當然有很好的理由送出一個壓縮檔案,例如這是一個軟件包之類),他們的感受會好得多,也可以讓他們自行決定是否開啟,或者甚麼時候開啟。傳統的作法是在超連結後面加上一個檔案類型的提示,這可以是一句文字,也可以是一個小圖示,但要把所有這類型的超連結加上提示,除了手動以外,有沒有更方便快捷又不會出錯的方法?Toby Somerville 在 SitePoint 有一篇教學文件介紹兩個作法。
CSS 技巧 - 絕對位置、相對位置
若果你要做一個網頁,左邊是一個固定寬度的選單,右邊是一個佔用所有餘下空間的主內容,兩邊的長度都剛好是瀏覽器視窗的高度,選單和主內容都會隨著視窗的大小而自動調整大小,不用 JavaScript 的話,你會怎麼做?
有用的 CSS 提示
Jonathan Snook 根據他個人經驗和習慣,總結了一些有用的 CSS 提示,包括是否應該使用像素作為字型大小的單位、把 CSS 宣告寫成單行、適當地縮排、只需支援最新的瀏覽器等等,這些提示很大程度上是 Jonathan 的個人偏好,正如他自己說:「我希望把我在 CSS 上的工作習慣與大家分享,但我必須提醒你,這裏所說的可能很有爭議性,但不活在危機之中生命有甚麼意義呢?(對的,當 CSS 被視為「危機」的時候,我的確活得很刺激。)」
如何編寫動態網頁:結合 HTML、JavaScript 和 CSS 的範例
用 CSS 產生語法高亮顯示效果
語法高亮顯示(syntax highlighting)幾乎是每一個技術網站都必備的功能,比較以下兩個例子便很容易明白沒有這項功能是多麼令人懊惱的事:
用 PHP 控制 CSS
在 thecssweblog 有一篇由 Amber Rhea 寫的有關使用 PHP 來動態控制 CSS 的文章。文章引述 Patrick Fitzgerald 另一篇有關使用 PHP 來控制顏色的文章。
Category: CMS
Category: Database
優化你的 MySQL 數據庫運作
要提高一個 PHP 應用系統的效能,除了優化算法、原碼外,還有很多方面可以著手,資深軟件工程師 Mike Willbanks 發表了一篇文章討論優化 MySQL 數據庫的運作,包括懶惰連接、不做無謂的查詢、小心規劃數據庫結構等。雖然這篇文章針對 MySQL,不過提及的技巧在其他數據庫引擎上同樣有用。
SQL 注入攻擊新招
相信很多 PHP 的開發者都認識 SQL 注入攻擊(SQL injection),我們之前在「不可不知的 PHP 安全技巧」也曾經介紹過,最近 Gareth Heyes 在他的個人網誌提到一種新的 SQL 注入攻擊招式,Gareth Heyes 稱它做「SQL 反射注入攻擊(reflected SQL injection)」,很多人可能都會忽略。
PHP5, Sqlite 及 Windows
在 Turn up the Crank 有一位作者分享他使用 PHP5、Sqlite、Windows 的經驗。作者需要一個數據庫儲存資料,由於涉及的資料處理工作很簡單,所以他選擇了 Sqlite,結果他發現:
簡單易懂的介紹 SQL
學習一種語言最有效的方法是多做練習,學習 SQL 也是一樣,A Gentle Introduction to SQL 是一個讓你實際輸入及執行 SQL 語句的教學網站,他們提供一些編寫 SQL 的有用技巧,大量不同深淺程度的練習(附有答案),還有小型專案給你盡情發揮你的 SQL 才華。
在 PHP 數據庫應用中五種常見的錯誤
數據庫跟其他工具一樣,若果不正確地使用,很容易出現濫用的情況,Jack Herrington 在一篇文章中說,你可以在 PHP 應用程式中建立數據庫、存取資料,然後在其上編寫商業邏輯,達成這些目標很有方法,可惜很多人仍然把事情弄糟。在這篇文章中他闡述數據庫設計,和存取數據庫的 PHP 程式的五種常見毛病,還有如何避開這些毛病,文中並附有大量實例。這五種毛病是:
MySQL 預存程序入門教學
Ligaya Turmelle 在 A/R/T 刊登了 >MySQL 預存程序的教學文件的第一篇,Turmelle 在這篇文章首先介紹甚麼是預存程序(Stored Procedure)與及預存程序的優點:
Category: MySQL
優化你的 MySQL 數據庫運作
要提高一個 PHP 應用系統的效能,除了優化算法、原碼外,還有很多方面可以著手,資深軟件工程師 Mike Willbanks 發表了一篇文章討論優化 MySQL 數據庫的運作,包括懶惰連接、不做無謂的查詢、小心規劃數據庫結構等。雖然這篇文章針對 MySQL,不過提及的技巧在其他數據庫引擎上同樣有用。
Sun 出價 10 億美元收購 MySQL
Sun Microsystems(大陸稱為「昇陽電腦」)出價十億美元收購全球最受歡迎、最多用戶的開源數據庫系統 MySQL,在 Sun 及 MySQL AB 的網站均有發出聯合新聞公告。
MySQL 預存程序入門教學
Ligaya Turmelle 在 A/R/T 刊登了 >MySQL 預存程序的教學文件的第一篇,Turmelle 在這篇文章首先介紹甚麼是預存程序(Stored Procedure)與及預存程序的優點:
對於有太多列表的數據庫,phpMyAdmin 可能會當機
Ana Aman 在她的網誌上表示:「若果你的數據庫有超過 1,500 個列表,phpMyAdmin 可能不會顯示任何東西,這時候你根本無法用 phpMyAdmin 管理你的數據庫。」
Category: Ajax
dhtmlxGrid 讓你用 XML、CSV 或 JSON 建立動態數據驅動的網格
總部設在俄羅斯聖彼得堡的 DHTMLX 公司更新其 dhtmlxSuite 套件,這是一套專業的 Ajax 網頁介面組件,採用開放原碼 GPL 執照,這次主要更新了套件中的「網格」(dhtmlxGrid) 和「樹格」(dhtmlxTreeGrid) 組件,包括了大量的新功能和改進,例如從 JSON 和 JavaScript 陣列載入數據、智能渲染、及分層數據網格的分頁支援,套件亦加入了新的「滑竿」(dhtmlxSlider) 組件。
XMLHttp 不是 Ajax 唯一的方法
隨著 Ajax 近年來瘋魔全球的網站設計師,大家一提起互動網頁、Web 2.0、SOA(服務導向架構),便自自然然想起組成 Ajax 的幾個字: Javascript、XML。彷彿要做到那靈巧的互動功能,便一定要調用 XMLHttp,真的是這樣嗎?
用 Ajax 網上製作和播放演示(presentation)
Thumbstack.com 是一個提供完全網上製作和播放演示(presentation)的全新網站,它利用 Ajax 技術把整個建立、儲存、修改、更新、發佈的過程全部在瀏覽器進行,發佈後的演示可以跟其他人分享,操作十分簡單,免費註冊後便可以使用。
PHP 和 Ajax 初學者教學文件
IBM 的 developerWorks 有一篇介紹如何使用 PHP 和 Sajax 來編寫簡單應用程式的教學文件,很多人對 Ajax 這種嶄新的網頁技術都認識不深,實際運用它來編寫網頁的更少,這篇文章透過建立一個簡單的相簿系統,從純粹使用 PHP 開始,逐步加入 Ajax 功能,中間加插對 Ajax 的介紹,使讀者明白 Ajax 的特色,它如何突破了傳統的網站設計理念,怎樣在實際的設計中加入 Ajax 的元素。
Category: Web 2.0
dhtmlxGrid 讓你用 XML、CSV 或 JSON 建立動態數據驅動的網格
總部設在俄羅斯聖彼得堡的 DHTMLX 公司更新其 dhtmlxSuite 套件,這是一套專業的 Ajax 網頁介面組件,採用開放原碼 GPL 執照,這次主要更新了套件中的「網格」(dhtmlxGrid) 和「樹格」(dhtmlxTreeGrid) 組件,包括了大量的新功能和改進,例如從 JSON 和 JavaScript 陣列載入數據、智能渲染、及分層數據網格的分頁支援,套件亦加入了新的「滑竿」(dhtmlxSlider) 組件。
網頁剪輯應用實例──用 PHP 製作一個「當年今日」的物件
網絡上有數以千計提供服務網頁的網站,它們供應有趣的,甚至富有教育性的資訊,你可以把這些資訊整合到你的網頁裏面,或者製作一個小裝置 (widget) 讓其他人無縫地整合這些資訊到他們的內容傳送平台。Hasin Hayder 在他的網誌介紹怎樣用 PHP 剪輯 Scopesys 的網頁製作一個「當年今日」小裝置。
XMLHttp 不是 Ajax 唯一的方法
隨著 Ajax 近年來瘋魔全球的網站設計師,大家一提起互動網頁、Web 2.0、SOA(服務導向架構),便自自然然想起組成 Ajax 的幾個字: Javascript、XML。彷彿要做到那靈巧的互動功能,便一定要調用 XMLHttp,真的是這樣嗎?
Category: SEO
新的網頁等級分析工具
SEOMoz.org 開發了一個計算「網頁強度」的有趣工具,用來評估一個網頁或者網站的相對價值 (value) 重要性 (importance) 和可見性 (visibility)。
搜尋引擎編索引的極限:你的文章應該有多長?
網站的開發人員,特別是商業網站,對於如何針對搜尋引擎進行優化,使自己的網頁能夠在搜尋的結果中排得較為前列的位置,都進行過不少研究,也有無數針對「搜尋引擎優化(Search Engine Optimization, SEO)」的文章發表過,指導大家如何令搜尋引擎重視自己的網頁。