你可以在這裡閱覽這(篇幅頗長的)文件或從下列選擇最適合你的格式下載:
- Word 2000格式、非壓縮 134Kb
- Word 2000格式、zip壓縮檔 32Kb
以上文件已格式化成可以雙面列印!
目錄
1 引言
為網站進行標籤背後的概念是十分直接–用戶收取內容時,亦會收到一套含有密碼的描述符,根據家長的設定,過濾軟體就能阻截或容許接收。聽起來像是內容審查者夢寐以求的工具,但事實並非如此–原因如下:
- ICRA的內容描述符的設計是盡量達致容觀。可加上個人判斷的空間甚少(雖然我們不會否認,即使我們如何努力,都會有少許空間。)
- 負責為你網站評級的是你,不是ICRA。
- 決定兒童可以或不可以看某些內容的是他們的家長,不是ICRA。
所採用的平台是互聯網內容客揀選平台(PICS),其標準是由W3C所設定。亦有其他評級服務使用PICS系統,但它們或多或少都會帶有他們本身的文化價值觀。ICRA的系統是唯一以全面國際化與跨文化目標而設計的系統,且得到互聯網界很多知名機構的支持。
評級標籤可以在所有層面使用,由伺服器所發出的每一個檔案,不論其網域為何,以至每個個別檔案。
要一個以PICS為基礎的過濾器,利用內容標籤決定是否容許從一個網站下載檔案–不論這個檔案的格式是什麼(HTML文件、影像或其他),都要先滿足兩個條件:
- 有關檔案必須在其版頭位置載有一個評級標籤。
- 過濾器內必須已存有一個可以適用於有關待處理內容的標籤。
這令標籤過程可以用兩種方法其中之一進行:
- 設定伺服器,令它在每一個它所處理的檔案內加入PICS標籤。如使用這個有效率的「一次過」方法,掌握控制權的是伺服器工程師。
- 在每一頁的HTML版頭部份加入一個元標記(meta tag),利用一個程序語言,透過SSIs,為每頁寫上一個相同的版頭。又或如無其他方法,就用複製貼上方式,把標籤加進每一個獨立版。以這種方式進行,控制權就在網站管理員身上。
本文件詳述一個PICS標籤內各個元素,並敘述如何以上述的兩種方式把標籤傳送。
2 發出標籤(Label Generation)
此文件內的資料,(僅)是足夠讓你可以自己發出一個ICRA評級標籤,ICRA亦不會反對你這樣做。但是有其他較容易和以我來看也是較理想的方法。
除了ICRA網站內的主標籤發出器外,亦有多種其他標籤發出器可供下載。其中包括一種基本的HTML格式,去指令ICRA伺服器上的一個程式,利用獨立運作的發出器(一個在線或離線都可使用的單一的HTML /JavaScript檔)去發出標籤。這裏的目的是令發出標籤的過程盡量簡便,你可以往www.icra.org/label/download/參閱各種不同的版本並進行下載。
使用ICRA標籤,不論是自動發出或個別製作的,都受ICRA的條款與條件管制,有關的條款與條件載於ICRA網站內。
2.1 Z 0–「不知道」選擇
當為一個大網絡的各部份加上標籤時,有可能會不知怎樣去為某些內容評級。例如你的伺服器可能亦會處理一些不受你直接控制的內容。那你應該如何為這些內容去評級呢?
其中一種方法是明示的使用「Z 0 」描述符。
舉例說,如果我們要寫出一個完整的標籤,去申明某些內容是含有輕度咒罵語言,就會是:
la 0 lb 0 lc 1 lz 0
即是,不含有關性的明示語言(la 0),不含有粗鄙語或粗言穢語(lb 0),但含有輕度咒罵語(lc 1),因此「以上各項均不是」不適用(lz 0)。
為了簡化起見,一個ICRA標籤不會真的包含所有以上各項,我們只會把lc 1寫進去。不寫上0字項,就已代表它們不存在。因此,把所有有關語言的描述符設定為「零」是有其意義的:
la 0 | :沒有明示的性語言 |
lb 0 | :沒有粗鄙語或粗言穢語 |
lc 0 | :含有輕度咒罵語 |
lz 0 | :「以上各項皆沒有不適用」 |
理論上,我們是可以不寫上任何語言描述符,但運作上我們一定在每個類別中加進至少一個描述符,如果我們確想把所有語言描述符都指定為0,我們會明示地以lz 0來表達,即「以上各項皆沒有不適用」。
如果所有語言符都沒有申報,即是「沒有就內容的語言作出申報」。簡單來說,就是我們不知道。
從家長的角度看,就是要把過濾器設定到要有lz 1的申報,或當沒有任何其他描述符含有l的申報時才接受lz 0。下圖展示ICRA過濾器的控制台。
選擇了「封鎖所有壞語言,或逐項選擇封鎖/准許」,其他的選擇就不適用,意即過濾器要有lz 1才會讓內容通過。在這種情況下,la 1,lb 1或lc 1都會被封鎖,但lz 1與lz 0就會獲得通過。
其他類別的運作邏輯也是相類似。在暴力的類別,以及在祼體與性物品類別,是可以發出一個標籤,代表以下的意思:「可能會有這類物品,如果有,它們是具醫學、教育或藝術的意義,而且是適合幼童觀看。」
3 一個PICS標籤的元素
一個基本的PICS標籤格式如下:
(pics-1.1 “RATING SERVICE URL” l r (RATING))
裏面包含的元素是:
pics-1.1 顯示我們正在使用那個版本的PICS
RATING SERVICE URL 一個永遠都用雙引號包著的URL(會擾亂網頁製作工具,但別理會它)。因為它是個URL,它有兩個功用,第一它是個有關評級服務的特殊識別,第二,它亦標明可以在那個位置取得此服務的資料。在ICRA的情況,評級服務的URL是http://www.icra.org/ratingsv02.html
l 這個小階“L”,是標籤的簡寫(你亦可選擇把labels這個字整個寫出來。)這標明隨後的標籤、或一串標籤是由同一個標籤服務發出。
r 是評級(ratings)的簡寫(你可選擇整個字寫出來)。這就是根據這個評級服務的標準而釐訂的評級。
語法規定,標籤一定要包含在單引號與括號之內。
以下是我們第一個完整的ICRA標籤例子:
範例一:一個基本的ICRA標籤
‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lz 1 nz 1 oz 1 vz 1))’
這個例子中顯示的評級是ICRA代碼,表示“以上各項皆沒有”適用於所有類別。換句話說,這個標籤代表一個申報此網站:
- 沒有聊天或留言版服務 (cz 1)
- 沒有有可能令人反感的語言 (lz 1)
- 沒有描繪祼露或性行為的影像,描述或描寫 (nz 1)
- 沒有描述符是在「其他」類別 (oz 1)
- 沒有影像,描述或描寫是有關任何種類的暴力 (vz 1)
評級時所用的代碼在ICRA網站中有詳細解釋。
如較早前提到,如果標籤只應隨著某些檔案發送,再套用於本身沒有自己標籤的內容,那就須要加上進一步的資料,去控制過濾設備應該如何高速緩存(cache)和套用這些標籤,做法是利用像以下的語句:
gen true for “http://www.foo.com/”
gen 是通用(generic)的縮寫。這旗標可設定為正或負。如果是正,那有關的標籤就適用於任何URL以for語句作起始的網頁。此類gen true標籤會納入過濾器的快取記憶內,容後使用。如果gen旗標設定為負,那標籤就只能套用於一個特別指定的URL。因此,gen false標籤通常指向一個特定網頁,而非一個網域名稱,如:
gen false for “http://www.foo.com/page.html”
範例二:一個為整個網域而設的完整ICAR標籤
一個申報foo.com網域上「以上各項皆沒有」,適用於所有類別的完整ICAR標籤就會是:
‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l gen true for “http://www.foo.com/” r (cz 1 lz 1 nz 1 oz 1 vz 1))’
如此一個標籤最有可能用於HTML元標記(meta tag)中,而不是在伺服器及回應標題中。
3.1 RSACi
由於ICRA是由較早的RSACi評級系統演變而來,而且,在目前,Microsoft Internet Explorer的內容警告器仍以RSACi為啟始設置,其他較舊的軟體(Netscape 4.X, NetNanny與CyberPatrol)也是如此,因此我們建議應兼顧到RSACi的元素,雖然不是必須。一個同時加入RSACi的綜合標籤會像如下:
範例三:一個ICRA/RSACi綜合標籤
‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lz 1 nz 1 oz 1 vz 1) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
為清晰起見,gen-for語句在此沒有顯示。RSACi的評級是級數比較多和較主觀的,詳細資料載於http://www.icra.org/decode/。如果有需要,你也可以把標籤語句加長,以加入其他PICS評級服務的元素。
有關伺服器配置的一般意見
以下兩點提示可令我們更快捷完成程序:
- 如果你在每一個你處理的檔案中加上標籤,那你就不需加進任何有關該標籤指向什麼的資料,因為所指的是含有標籤的那個檔案。
- 配置Apache或IIS令它們在每個所處理的檔案中加入標籤是很容易的。
以下兩章節解釋如何配置Apache與IIS伺服器去加上PICS標籤。在這些章節內,我們假定你可以把你的伺服器配置成可在每個所處理的檔案中加上標籤。即是說,檔案到達有使用PICS的用戶時已載有自己的標籤。如果你想所傳送的標籤載有更多資訊,令它們可儲在電腦的快取記憶內,以便套用於其他資源上,從而減少所需要處理的標籤數目,那你就應該細閱有關HTML元標記(Meta tags)一章。該章載有詳細資料,解釋gen-true-for元素是如何令標籤可以被快取記憶存取,並套用於本身沒有標籤的資源上。
5 Apache設置
以下說明假定你對Apache配置最少有基本認識。
注意:
如果在HTTP回應標題(Response Header)中加入標籤,你須要使用mod_header模件。這並非一個起始設定模件,因此你必須製作/上載,才可以繼續。
範例四:為同一個伺服器處理的所有內容設定一個起始設定標籤
Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lz 1 nz 1 oz 1 vz 1) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
把以上的語句存放於你config檔內的非集體指令(block directive)以外地方,就已完成。那伺服器處理的每一個檔案都會在HTTP標題部份加上這個標籤。
這語句中的元素如下:
標題設定PICS標籤(Header set pics-label)–很明顯的,這指令Apache把pics標籤標題設定至以下數值。就如我建議,任何情形下都要用要用「設定」(set)而非用附錄(append)或附加(add)方式來做,是因為用「設定」可以取代所有以往曾設定的標籤。
‘(pics-1.1 “http://www…)’ 這就是標籤本身,或對Apache來說,這個pics-l標籤標題的數值。請留意,代碼是放在單引號之內。你一定要依足這裏所用的單或雙引號(single and double quotes)格式。PICS與一般編碼程式不同,不容許你調亂引號的次序。
5.1 利用Apache集體指令(block directives)操控標籤
HTTP回應標題(Response Headers)可用以下的集體指令設定:
i.e. act as a default and and
and
這些集體指令亦包容「百撘」(wildcards)指令,即用“?”去應配單一字元,以“*”應配任何數目的字元,以及正規表達式去進行模式應配。一個.htaaccess檔案內只可以設置與。我們稍後才討論這些題目。
注意:本文件一個較早的版本說,一個集體指令內不能設有HTTP回應標題。這是不正確的(起碼對V1.xx而言是如此)。如果你使用的是一個指令,請留意。
以上清單的排序是重要的。是被蓋過,則被蓋過。
欲取得集體指令的詳細資料,請參閱Apache的文獻,特別應瀏http://httpd.apache.org/docs/sections.html.
這當中最重要的當然是你可以為你內容的不同部份加上不同的標籤。鑑於某些文獻認為指令並不容納HTTP回應標題,我們建議,要為一個伺服器上的一個網站加上標籤,最好是使用或集體指令:
範例五:在目錄集體指令內(Directory block directive)設定標題
Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lz 1 nz 1 oz 1 vz 1) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
要為一整個網站加上標籤,dir應該是進入該網站位於伺服器上之根目錄(root directory)的絕對路徑。
同一個集體指令亦可以用來為一個網站的某一部份加上標籤,條件是該部份的所有檔案都儲存在同一個目錄中–你只須看情況設定dir,建立另一個集體指令。舉例說,你可能想為www.animals.com/birds/與www.animals.com/insects/加上不同的標籤。
Apache是根據元素的數目多寡為序來處理的集體指令,即它會先處理,然後才處理。所以,你想加進章節目錄(section directory)的標籤會正確的取代了以前的一個,詳情請參閱第11章。
和集體指令則以它們在config檔出現的次序來處理。
範例六:為特定檔案設定標題
在我們的情況下,這只是集體指令的伸延。舉例說,你的網站應該得到A評級,但唯獨是索引頁屬B評級。以下的方法就可解決問題:
Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lz 1 nz 1 oz 1 vz 1) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
請留意,集體指令(通往文件根)採取的是相對路徑而不是絕對路徑
範例七:使用集體指令
視乎你的實際情況,這可能是使用集體指令的最好方法,因為它是用URL,而不是用你伺服器上的檔案名稱與路徑,作為其評定值。例如為www.foo.com加標籤就會如此:
Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lz 1 nz 1 oz 1 vz 1) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
5.2 使用「百撘」(Wildcards)與「正規表達式」(Regular Expessions)
之前的範例都是有關一些特別情況的,但Apache的集體指令其實是十分富彈性。這對加標籤的工作十分有利。
舉例說,ICRA的標籤矩陣其中有一部份是有關聊天服務。ca 1代表不受監控的聊天室(或留言板),cb 1代表受監控的聊天室,cz 1代表沒有聊天室或留言板,因此,你大部份的網站都會可能有一個申報cz 1的啟始設置標籤,但你亦可能同時有聊天室服務,而且所有有關的URL都會含有聊天這個字。這你可以用一個百撘(wildcard)指令如下:
範例八:用百撘(wild card)去為一種內容加標籤
Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (ca 1 lz 1 nz 1 oz 1 vz 1) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
有了上述的指令,不論網頁之後會被網站管理員再更新或修改多少次,聊天的部份都會附有這個標籤。
這個做法有一個危險,就是任何含有chat這四個字母的URL都會附有標籤。試想有一個網站叫Chatanooga Choo Choo,就會出問題。
要解決這個問題,就要貴機構不同部門的人士通力合作。如果上述的集體指令稍作修改,在「chat」字後面加上「/」符號,即變成,那麼,URL內含有「 chat/」的網頁才會附有有關的標籤。
範例九:使用正規表達式(Regular Expression)
正規表達式是個大課題,我不會在這裏詳細講授﹗我們要知道的,是它們是十分有用的工具。試想像你的伺服器上有四個網站:
- cats.com
- dogs.com
- warthogs.com
- zebras.com
要為cats,dogs或其他由“a”至“m”字母開頭的網站設定集體指令,可如此寫:
而為wartdogs,zebras與其他由“n”至“z”開頭的網站設定集體指令,就會是如此:
(你到現在應已見過不少PICS標籤,應知道以上只是集體指令的開端﹗)
範例十:設定你自己的分類體制
使用百撘或正規表達式,你可以建立你自己的簡易評級系統,所須的只是以一個預設的方法為檔案取名。舉例說,若你想把網站的內容以年齡為基礎去分類,某些內容應屬“PG(家長指引)”或類別“12”,即你可以設置以下兩個指令:
與
那麼,在你網站內,所有在附注檔名前有「-pg」的檔案就附有你的PG評級, 所有在附注檔名前有「-12」的檔案就附有你的12評級,而所在附注檔名前沒有上述字串的檔案,就會得到啟始設定的評級(如果你有設定)。
5.3 使用一個.htaccess檔
要對PICS標籤作增減或修改,又不想關閉或重新啟動伺服器,是可以的。做法是在一個.htaccess file中加進HTTP標題回應(Header Responses)。
注意:只有與 集體指令才可以在.htaccess檔中使用,或類是不能的。
眾所周知,使用一個.htaccess檔的得失,是一個靈活性與伺服器負荷之間的平衡。對我們來說,它最有用是用來為短暫性的內容加標籤。地域覆蓋面廣的機構或網絡,應留意以下的建議。
只是個建議
你可考慮建立一個次級.htaccess檔來專門處理有關標籤的工作。Apache兼容多個.htaccess檔,因此,其中一種可行的做法是加上如下的配置:
AccessFileName .htaccess, .filename
有了專門處理有關標籤的工作的獨立.filename,.htaccess檔就會包含你放進去的任何東西。
我是用以下的指令來做測試:
< Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cz 1 lb 1 nz 1 oz 1 vz 0) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’ Header set pics-label: ‘(pics-1.1 “http://www.icra.org/ratingsv02.html” l r (cb 1 lb 1 lc 1 nz 0 oz 1 vz 0) “http://www.rsac.org/ratingsv01.html” l r (n 0 s 0 v 0 l 0))’
最初,是試驗把這兩個集體指令放在兩個不同的檔案內:.htaccess與另一個稱為.picslabels的(名字不重要)。但失敗了。只有在config檔AccessFileName中指定為第二的那個指令才有效。但若把兩個集體指令放到同一個檔案中,不論在AccessFileName列上指定為第一或第二,都得行通。
使用這個方法,對機構或政策釐定的好處是,它令機構可委派一位職員獨立處理一個獨立的標籤檔。只要授予有關的職員進入伺服器上特定目錄的FTP進入權,他/她就可以遙距完成有關的整項工作。
6 設置Microsoft IIS
Microsoft(微軟)令到設置IIS去包含PICS標籤十分簡易。標題資訊是用Custom HTTP Header功能來設置於HTTP標題內容頁上。IIS採用的是一個分層級的結構,HTTP Headers內容頁在以下的層級內都可設置:
- 網站伺服器
- 主目錄/網站(IIS或更新版本支援多個網站)
- 虛擬目錄(Virtual directory)
- 資料夾
- 網頁
要設定HTTP標題內容,先選擇適當的層級,右擊選擇內容,再選HTTP Header Property版。下圖顯示的是啟始設定網站的HTTP Headers Property版面。如圖所示,電郵地址與內容有效期亦可在HTTP Headers內設定(這些與PICS標籤無關)。
請不要使用[Edit Ratings]功能。如果你在System32資料夾內加進ICRA.rat檔案(即是在PICS標準內為ICRA評級制度定義的檔案),你就可在有關的對話中看見ICRA評級。但因為IIS沿用舊的RSACi識別器,而且寫進了一大堆標籤,製造了不少混亂,可想而知,過濾器不懂識別。因此,請只使用自訂標題(custom headers)。
按「Add」鍵,在Custom Header Name格內填上pics-label,在Custom Header Value格內填上標籤本身如下:
這就完成了。如果你的網站自己擁有一個獨立的伺服器,你亦用IIS,你就可以把同一個評級加到每一頁–這個標籤會被加到整個網站,而不會顯示任何元標記(meta tag)。
你亦可以同一個方法,根據需要為目錄或個別網頁加上標籤(只需在適當的目錄或檔上右擊便可)。但要留意的是一些Apache的「額外功能」,例如用獨立檔案儲存與管理標籤的功能,IIS就久奉。
7 檢視HTTP回應標題(Response Headers)
要測試加標籤的工序是否成功,唯一最有效的方法,就是在啟動過濾器後瀏覽有關的網站。MSIE內容警告器在這工作上十分管用,但你要先裝設ICRA.rat檔。你亦可選擇使用我們的免費ICRAplus軟體。
要檢視你在HTTP回應標題內的標籤,你可以遠程登錄(telnet)你的網站,但網上亦有幾種工具可令你更方便的檢視標籤,例如DJ Delorie的HTTP Header Viewer(HTTP標題檢視器),位置是www.delorie.com/web/headers.html。
8 用HTML元標記(meta tag)為網站標籤
除了用HTTP回應標題外,PICS標籤亦可以靠HTML頁中HEAD部份內的元數據格式發送。
範例十一:為www.foo.com而設計的完整ICRA/RSACi標籤
此標籤內的元素與第三章中所述的是一樣的,唯一分別是標籤是以一個http-equiv meta tag(http等价元標記)格式發送。如果你用這個方法,gen-for的元素就十分重要。緊記,要令過濾器把一個評級標籤套用於一個特定的網上資源,就要標籤隨有關的資源一併發送,或過濾器一定要在快取記憶中已儲存了一個可套用於該資源的標籤(後者對我們較重要)。
同時,HTTP是個無分國界的協定,每次索取一個在外面的檔案,都是用戶與伺服器間的一樁完全獨立事務。
範例十二:一個簡單的HTML分段(無標籤)
1) | |||||||||||||||||||||||||||
2) | |||||||||||||||||||||||||||
3) | A title | ||||||||||||||||||||||||||
4) | |||||||||||||||||||||||||||
5) | |||||||||||||||||||||||||||
6) | |||||||||||||||||||||||||||
7) |
That title again |
||||||||||||||||||||||||||
8) | |||||||||||||||||||||||||||
5) | |||||||||||||||||||||||||||
6) | |||||||||||||||||||||||||||
7) | |||||||||||||||||||||||||||
8) |
That title again |
||||||||||||||||||||||||||
9) |
這個元標記會把所有以“http://www.foo.com/chat/”為開始的URL加上含有ca 1 ICRA描述符的標籤,即不受監控的聊天室(RSACi沒有相等的描述符) 重點在這裏: 如果過濾器的快取記憶中有一個適用於“http://www.foo.com/”的標籤,又再取得一個適用於“http://www.foo.com/bar/”的標籤,那麼後者便會被套用於所有位於/bar/目錄中的URL,而不是前面一個「較通用」的標籤。 再者,你可以用一個gen false標記去特別為一個HTML文件加標籤: 範例十五:一個特定的(gen false)標籤這裏,bar.htm頁附有一個標籤,申報內容根據ICRA制度含有粗鄙語或污言穢語,以及根據RSACi制度含有輕度咒罵語或污言穢語。
8.2 為從其他網域取得的資源加標籤範例十六:HTML分段看看你可否在以下的範例中找到錯處–與範例十三只有一處不同:
|