Google 的 Chrome 和蘋果的 Safari 的密碼管理系統最弱

密碼管理一直是受到忽視的瀏覽器安全性項目,資訊科技顧問公司 Chapin Infomration Services (CIS) 最近對 Google 的 Chrome、微軟的 IE 7、Opera、蘋果的 Safari 和 Firefox 3 五大瀏覽器的密碼管理系統進行測試,發現沒有一個能完全通過他們的 21 項測試項目,表現比較好的是 Opera 和 Firefox,但也只能通過 7 項測試,最差的是 Google Chrome 和 Safari,兩者只通過兩項測試。

該公司檢視了市場上幾個主流瀏覽器:IE 7、Opera 9.62、Firefox 3.04、Safari 3.2 及 Google Chrome,測試的結果顯示每個瀏覽器都或多或少有密碼保安上的漏洞,可以導致密碼洩漏。他們特別指出三個關鍵的安全性問題: 繼續閱讀 »

視窗版 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 的缺點與及解決方法已經一段時間,現在他終於提出了一個跨瀏覽器而又簡潔的終極解決方案

事情的原委是這樣的:很多開發人員使用 document.onload 來啟動 JavaScript 進行一些網頁效果的初始化工作,例如動畫菜單、Ajax 應用程式等,但是 document.onload 只有當網頁的所有內容,包括圖像、JavaScript、動畫、影音檔等全部下載後才會被觸發,倘若這些檔案容量很大,或者儲存在一個不受你操控的伺服器 上,網頁上的效果很可能被延遲啟動,甚至完全不能啟動。

這就是 Dean Edwards 希望解決的問題。

他早在 2005 年 9 月已經基本上找到了 Mozilla 和 IE6 上的解決方法,Mozilla 的解決方法是使用一個即使在 Mozilla 網站亦沒有詳細解說的 DOMContentLoaded 事件,IE6 則需要使用兩個 Miscrosoft 的自訂規格 deferconditional comment,可惜這個方案有兩個缺點:

  1. 在 IE6 它必須使用外部 JavaScript 檔
  2. 它沒有解決 Opera 和 Safari 的問題

現在 Dean Edwards 終於為 Opera 和 Safari 找到了解決方案,而且在 IE6 也有了無需使用外部 JavaScript 檔的方法,所有問題正式畫上句號。

網頁設計師使用甚麼瀏覽器?

W3 Schools 統計了它們網站的使用紀錄,得出了由 2002 年 1 月到 2006 年 5 月訪客的瀏覽器統計資料,不出意外地 IE6 佔有最大比例 56.7%,這個數字與大部分人以為 IE 佔有壓倒性優勢的想法不同,Firefox 則有 25.7%。

Jeff Attwood 在他的 網誌 把這些數據整理成以下的圖表,顯示各個版本的瀏覽器長期以來的走勢。

必須注意的是這些資料是來自 W3 Schools 的網站紀錄,這個網站是專為網頁設計師而設的資源網站,所以訪客大都是技術人員,一般來說這些人比其他人更願意嘗試不同版本的瀏覽器。

此外,不同的網站服務不同的社群,所以對瀏覽器的使用習慣也不相同,這些數據可以用作參考,但卻不能視為整個互聯網的整體現象。

W3 Schools 的統計資料除了瀏覽器的使用外,還有用戶操作系統的統計,使用 Windows XP 的用戶最多,達 74%。至於顯示器的解像度方面,竟然有 20% 的網頁設計師使用 800×600。另外有 10% 的設計師把瀏覽器的 JavaScript 功能關閉或者使用不支援 JavaScript 的瀏覽器。

用 CSS 產生語法高亮顯示效果

語法高亮顯示(syntax highlighting)幾乎是每一個技術網站都必備的功能,比較以下兩個例子便很容易明白沒有這項功能是多麼令人懊惱的事:

<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>My Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Heading%lt;/h1>
<p>HTML source without syntax highlighting, is it easy to read?</p>
</body>>
</html>

 HTML |  copy code |? 
01
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
03
<head>
04
  <title>My Page</title>
05
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
06
</head>
07
<body>
08
  <h1>Heading</h1>
09
  <p>HTML source without syntax highlighting, is it easy to read?</p>
10
</body>
11
</html> 

大部分系統實現這項功能的方法都是倚靠特定的函數來加插顏色到原始碼中,例如使用一個 highlight_html($input_str) 把一段 HTML 字串加插顏色效果,這個方法違反了把表達層和運算層分開的軟件設計理念,而且這種為特定系統編寫的函數移植到其他系統也有一定的困難,而且由編程語言直接 生成 HTML 原始碼,使維護和修改顏色方案時十分困難。

Dean Edwards 利用「CSS 擴充行為 」替特別標籤的 HTML 段落進行語法增強顯示,現時 IE 和 Mozilla 系列瀏覽器均支援這些「行為」,啟用這種「行為」的步驟是:

  1. 編寫一個「行為檔」(.htc), 它基本上是一堆 JavaScript。
  2. 在 CSS 中把特定的 HTML 標籤與這個「行為檔」聯繫起來。

為了令寫給 IE 的「行為檔」也能在 Mozilla 上執行,Dean Edwards 寫了一個 XBL wrapper,除此以外,他還提供了一大堆「行為檔」來支援不同的語言,包括 HTML、CSS、PHP、JavaScript、XML 等,只要把有關的段落的 class 適當地標示,便能自動產生語法高亮顯示的效果。以下的例子示範怎樣使用:

  1. http://dean.edwards.name/download/star-light.zip 下載最新的 1.0.3 版語法高亮顯示包
  2. 把整個包解壓到一個獨立的目錄,例如 style/start-light
  3. 在你的 CSS 中加上
    1
    @import url("star&minus;light/star&minus;light.css");
  4. 在你的 HTML(或由 PHP 生成的 HTML)中,需要進行語法高亮顯示的段落,前後加上 <pre class="xxxxx"> 和 </pre> 標籤,其中的 xxxxx 可以是 htm、html、css、php、xml 等

這樣便大功告成了。

這個方法的優點是它獨立於網頁編程語言,也獨立於伺服器的架構,唯一的要求是瀏覽器支援 CSS 擴充行為這個 W3C 標準。