標籤專業網站
是選擇不是審查
你可以在這裡閱覽這(篇幅頗長的)文件或從下列選擇最適合你的格式下載:
以上文件已格式化成可以雙面列印!
目錄
- 引言
-
發出標籤
- Z 0–「不知道」選擇
-
一個PICS標籤的元素
- RSACi
- 有關伺服器配置的一般意見
-
Apache設置
- 利用Apache集體指令(block directives)操控標籤
- 使用「百撘」(Wildcards)與「正規表達式」(Regular Expessions)
- 使用一個.htaccess檔
- 設置Microsoft IIS
- 檢視HTTP回應標題(Response Headers)
-
用HTML元標記(meta tag)為網站標籤
- 為網站不同部份加上不同標籤
- 為從其他網域取得的資源加標籤
- 有關HTML標記摘要
-
撰寫敘述程序(scripting)技巧,SSIs等
- 每頁用同一SSI
- 多個網域指向同一網站
- 在HTTP回應標題內用敘述程序(script)編寫標籤
- 減底頻寬
-
測試標籤
- 標籤測試器如何運作
- ICRA過濾器
- MSIE內容警告器
- HTTP與HTML並存
-
文件沿革
- 與1.1版本的分別
- 與2.0版本之分別
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檔)去發出標籤。這裏的目的是令發出標籤的過程盡量簡便,你可以往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://icra.org/ratingsv02.html
l 這個小階“L”,是標籤的簡寫(你亦可選擇把labels這個字整個寫出來。)這標明隨後的標籤、或一串標籤是由同一個標籤服務發出。
r 是評級(ratings)的簡寫(你可選擇整個字寫出來)。這就是根據這個評級服務的標準而釐訂的評級。
語法規定,標籤一定要包含在單引號與括號之內。
以下是我們第一個完整的ICRA標籤例子:
範例一:一個基本的ICRA標籤
'(pics-1.1 "https://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.example.org/"
gen 是通用(generic)的縮寫。這旗標可設定為正或負。如果是正,那有關的標籤就適用於任何URL以for語句作起始的網頁。此類gen true標籤會納入過濾器的快取記憶內,容後使用。如果gen旗標設定為負,那標籤就只能套用於一個特別指定的URL。因此,gen false標籤通常指向一個特定網頁,而非一個網域名稱,如:
gen false for "http://www.example.org/page.html"
範例二:一個為整個網域而設的完整ICAR標籤
一個申報example.org網域上「以上各項皆沒有」,適用於所有類別的完整ICAR標籤就會是:
'(pics-1.1 "https://icra.org/ratingsv02.html" l gen true for "http://www.example.org/" 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 "https://icra.org/ratingsv02.html" l r (cz 1 lz 1 nz 1 oz 1 vz 1))'
為清晰起見,gen-for語句在此沒有顯示。RSACi的評級是級數比較多和較主觀的,詳細資料載於https://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 "https://icra.org/ratingsv02.html" l r (cz 1 lz 1 nz 1 oz 1 vz 1))'
把以上的語句存放於你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)可用以下的集體指令設定:
<none> i.e. act as a default
<VirtualHost>
<Directory> and <DirectoryMatch>
<Files> and <FilesMatch>
<Location> and <LocationMatch>
這些集體指令亦包容「百撘」(wildcards)指令,即用“?”去應配單一字元,以“*”應配任何數目的字元,以及正規表達式去進行模式應配。一個.htaaccess檔案內只可以設置<Files>與<FilesMatch>。我們稍後才討論這些題目。
注意:本文件一個較早的版本說,一個<VirtualHost>集體指令內不能設有HTTP回應標題。這是不正確的(起碼對V1.xx而言是如此)。如果你使用的是一個<VirtualHost>指令,請留意。
以上清單的排序是重要的。<Directory>是被<Files>蓋過,<Files>則被<Location>蓋過。
欲取得集體指令的詳細資料,請參閱Apache的文獻,特別應瀏http://httpd.apache.org/docs/sections.html.
這當中最重要的當然是你可以為你內容的不同部份加上不同的標籤。鑑於某些文獻認為<VirtualHost>指令並不容納HTTP回應標題,我們建議,要為一個伺服器上的一個網站加上標籤,最好是使用<Location>或<Directory>集體指令:
範例五:在目錄集體指令內(Directory block directive)設定標題
<Directory dir>
Header set pics-label: '(pics-1.1 "https://icra.org/ratingsv02.html" l r (cz 1 lz 1 nz 1 oz 1 vz 1))'
</Directory>
要為一整個網站加上標籤,dir應該是進入該網站位於伺服器上之根目錄(root directory)的絕對路徑。
同一個集體指令亦可以用來為一個網站的某一部份加上標籤,條件是該部份的所有檔案都儲存在同一個目錄中–你只須看情況設定dir,建立另一個<目錄>集體指令。舉例說,你可能想為www.animals.com/birds/與www.animals.com/insects/加上不同的標籤。
Apache是根據元素的數目多寡為序來處理<目錄>的集體指令,即它會先處理<Directory“D://root/website1”>,然後才處理<Directory “D://root/website1/section”>。所以,你想加進章節目錄(section directory)的標籤會正確的取代了以前的一個,詳情請參閱第11章。
<Files>和<Location>集體指令則以它們在config檔出現的次序來處理。
範例六:為特定檔案設定標題
在我們的情況下,這只是<Directory>集體指令的伸延。舉例說,你的網站應該得到A評級,但唯獨是索引頁屬B評級。以下的方法就可解決問題:
<Files index.html>
Header set pics-label: '(pics-1.1 "https://icra.org/ratingsv02.html" l r (cz 1 lz 1 nz 1 oz 1 vz 1))'
</Files>
請留意,<Files>集體指令(通往文件根)採取的是相對路徑而不是絕對路徑
範例七:使用<Location>集體指令
視乎你的實際情況,這可能是使用集體指令的最好方法,因為它是用URL,而不是用你伺服器上的檔案名稱與路徑,作為其評定值。例如為www.example.org加標籤就會如此:
<Location www.example.org/>
Header set pics-label: '(pics-1.1 "https://icra.org/ratingsv02.html" l r (cz 1 lz 1 nz 1 oz 1 vz 1))'
</Location>
5.2 使用「百撘」(Wildcards)與「正規表達式」(Regular Expessions)
之前的範例都是有關一些特別情況的,但Apache的集體指令其實是十分富彈性。這對加標籤的工作十分有利。
舉例說,ICRA的標籤矩陣其中有一部份是有關聊天服務。ca 1代表不受監控的聊天室(或留言板),cb 1代表受監控的聊天室,cz 1代表沒有聊天室或留言板,因此,你大部份的網站都會可能有一個申報cz 1的啟始設置標籤,但你亦可能同時有聊天室服務,而且所有有關的URL都會含有聊天這個字。這你可以用一個百撘(wildcard)指令如下:
範例八:用百撘(wild card)去為一種內容加標籤
<Location *chat*>
Header set pics-label: '(pics-1.1 "https://icra.org/ratingsv02.html" l r (ca 1 lz 1 nz 1 oz 1 vz 1))'
</Location>
有了上述的指令,不論網頁之後會被網站管理員再更新或修改多少次,聊天的部份都會附有這個標籤。
這個做法有一個危險,就是任何含有chat這四個字母的URL都會附有標籤。試想有一個網站叫Chatanooga Choo Choo,就會出問題。
要解決這個問題,就要貴機構不同部門的人士通力合作。如果上述的集體指令稍作修改,在「chat」字後面加上「/」符號,即變成<Location *chat/*>,那麼,URL內含有「 chat/」的網頁才會附有有關的標籤。
範例九:使用正規表達式(Regular Expression)
正規表達式是個大課題,我不會在這裏詳細講授﹗我們要知道的,是它們是十分有用的工具。試想像你的伺服器上有四個網站:
- cats.com
- dogs.com
- warthogs.com
- zebras.com
要為cats,dogs或其他由“a”至“m”字母開頭的網站設定集體指令,可如此寫:
<DirectoryMatch /[a-m].*>
而為wartdogs,zebras與其他由“n”至“z”開頭的網站設定集體指令,就會是如此:
<DirectoryMatch /[n-z].*>
(你到現在應已見過不少PICS標籤,應知道以上只是集體指令的開端﹗)
範例十:設定你自己的分類體制
使用百撘或正規表達式,你可以建立你自己的簡易評級系統,所須的只是以一個預設的方法為檔案取名。舉例說,若你想把網站的內容以年齡為基礎去分類,某些內容應屬“PG(家長指引)”或類別“12”,即你可以設置以下兩個<Files>指令:
<Files *-pg.*>
與
<Files *-12.*>
那麼,在你網站內,所有在附注檔名前有「-pg」的檔案就附有你的PG評級,
所有在附注檔名前有「-12」的檔案就附有你的12評級,而所在附注檔名前沒有上述字串的檔案,就會得到啟始設定的評級(如果你有設定)。
5.3 使用一個.htaccess檔
要對PICS標籤作增減或修改,又不想關閉或重新啟動伺服器,是可以的。做法是在一個.htaccess file中加進HTTP標題回應(Header Responses)。
注意:只有<Files>與<FileMatch> 集體指令才可以在.htaccess檔中使用<Directory>,<Location>或<VirtualHost>類是不能的。
眾所周知,使用一個.htaccess檔的得失,是一個靈活性與伺服器負荷之間的平衡。對我們來說,它最有用是用來為短暫性的內容加標籤。地域覆蓋面廣的機構或網絡,應留意以下的建議。
只是個建議
你可考慮建立一個次級.htaccess檔來專門處理有關標籤的工作。Apache兼容多個.htaccess檔,因此,其中一種可行的做法是加上如下的配置:
AccessFileName .htaccess, .filename
有了專門處理有關標籤的工作的獨立.filename,.htaccess檔就會包含你放進去的任何東西。
我是用以下的<Files>指令來做測試:
<Files *-pg.*>
Header set pics-label: '(pics-1.1 "https://icra.org/ratingsv02.html" l r (cz 1 lb 1 nz 1 oz 1 vz 0))'
</Files>
<Files *-12.*>
Header set pics-label: '(pics-1.1 "https://icra.org/ratingsv02.html" l r (cb 1 lb 1 lc 1 nz 0 oz 1 vz 0))'
</Files>
最初,是試驗把這兩個集體指令放在兩個不同的檔案內:.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.example.org而設計的完整ICRA/RSACi標籤
<meta http-equiv=”pics-label” content=’(pics-1.1
“https://icra.org/ratingsv02.html” l gen true for
“http://www.example.org/” r (cz 1 lz 1 nz 1 oz 1 vz 1))’>
此標籤內的元素與第三章中所述的是一樣的,唯一分別是標籤是以一個http-equiv meta tag(http等价元標記)格式發送。如果你用這個方法,gen-for的元素就十分重要。緊記,要令過濾器把一個評級標籤套用於一個特定的網上資源,就要標籤隨有關的資源一併發送,或過濾器一定要在快取記憶中已儲存了一個可套用於該資源的標籤(後者對我們較重要)。
同時,HTTP是個無分國界的協定,每次索取一個在外面的檔案,都是用戶與伺服器間的一樁完全獨立事務。
範例十二:一個簡單的HTML分段(無標籤)
1) |
<HTML> |
2) |
<HEAD> |
3) |
<TITLE>A title</TITLE> |
4) |
<SCRIPT SRC="/scripts/script1.js"></SCRIPT> |
5) |
</HEAD> |
6) |
<BODY> |
7) |
<H1>That title again</H1> |
8) |
<IMG SRC="/images/image.gif"... |
要載入這一頁,所需要的不只是一個,而是三個客戶/伺服器要求:即HTML文件,外在的JavaScript檔案與影像。伺服器與一個使用PICS的客戶間的對話大致如下:
- 取HTML文件。快取記憶中有沒有此文件適用的標籤?沒有。
- 有沒有標籤?未發現,但稍後可能會有,我們還未讀完<HEAD>部份。
- 取JavaScript檔案。不是一個HTML文件。快取記憶中有沒有標籤?沒有。此資源未經評級。
- 到達</HEAD>標記,停止找尋標籤。此頁沒有評級。
- 取影像。不是一個HTML文件。快取記憶中有沒有標籤?沒有。此資源未經評級。
換句話說,這樣的一個簡單的HTML分段,在一個設定為封鎖未經評級網站的過濾器內,已產生了三個封鎖的訊息。
如果要用一個HTML元標記來為這頁標籤,標記一定要放在約第三行的位置,即在<HEAD>標記後,在首個索取外在檔案要求之前,例如:
範例十三:一個簡單的HTML分段(有標籤)
1) |
<HTML> |
2) |
<HEAD> |
3) |
<TITLE>A title</TITLE> |
4) |
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen true for "http://www.example.org/" r (cz 1 lz 1 nz 1 oz 1 vz 1))'> |
5) |
<SCRIPT SRC="/scripts/script1.js"></SCRIPT> |
6) |
</HEAD> |
7) |
<BODY> |
8) |
<H1>That title again</H1> |
9) |
<IMG SRC="/images/image.gif" ... |
與伺服器間的三段對話就會變為:
- 取HTML文件。快取記憶中有沒有標籤?沒有。
- 有沒有標籤?有。一些用戶會在此停止找尋標籤。
- 標籤內有沒有一個gen-true語句?有 - 加到快取記憶內。
- 取 JavaScript檔案。不是一個HTML文件。快取記憶內有無適用於此檔案的標籤?有。
- 取影像。不是HTML一個檔案。快取記憶內有無適用於此的標籤?有。
如果標籤是放在求取外在檔案之後的一行中,那麼就算標籤是存在於<HEAD>部份的較後位置,第四關(即在快取記憶中有沒有適用的標籤)將仍不能獲得通過。
因此,標籤所在的位置是重要的。如果你是依賴gen-true-for元素來為那些檔案加標籤,標籤就一定要放在索取外在檔案之前。
8.1 為網站不同部份加上不同標籤
假如你想為網站某部份或某一頁加上與網站整體不同的標籤,PICS做得到。還記得gen-true-for元素的基本原理嗎?如果一個標籤包含了一個gen true旗標(gen-true flag),這個標籤就會被快取記憶存取,並會被套用在所有以for語句中字串開始的URL。
範例十四:一個為聊天室而設計的標籤
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen true for "http://www.example.org/chat/" r (ca 1 lz 1 nz 1 oz 1 vz 1))'>
這個元標記會把所有以“http://www.example.org/chat/”為開始的URL加上含有ca 1 ICRA描述符的標籤,即不受監控的聊天室(RSACi沒有相等的描述符)
重點在這裏:
如果過濾器的快取記憶中有一個適用於“http://www.example.org/”的標籤,又再取得一個適用於“http://www.example.org/bar/”的標籤,那麼後者便會被套用於所有位於/bar/目錄中的URL,而不是前面一個「較通用」的標籤。
再者,你可以用一個gen false標記去特別為一個HTML文件加標籤:
範例十五:一個特定的(gen false)標籤
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen false for "http://www.example.org/bar.htm" r (cz 1 lb 1 nz 1 oz 1 vz 1))'>
這裏,bar.htm頁附有一個標籤,申報內容根據ICRA制度含有粗鄙語或污言穢語,以及根據RSACi制度含有輕度咒罵語或污言穢語。
問: |
此頁上影像會套用什麼標籤? |
答: |
任何存於快取記憶內,含有相配合gen-true-for語句的一般標籤,但不是這一個,這一個只適用於HTML文件。 |
問: |
標籤會被存到快取記憶嗎? |
答: |
不會。只有gen-true標籤才會被存取。 |
8.2 為從其他網域取得的資源加標籤
範例十六:HTML分段
看看你可否在以下的範例中找到錯處–與範例十三只有一處不同:
1) |
<HTML> |
2) |
<HEAD> |
3) |
<TITLE>A title</TITLE> |
4) |
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen true for "http://www.example.org/" r (cz 1 lz 1 nz 1 oz 1 vz 1))'> |
5) |
<SCRIPT SRC="http://script.com/scripts/script1.js"></SCRIPT> |
6) |
</HEAD> |
7) |
<BODY> |
8) |
<H1>That title again</H1> |
9) |
<IMG SRC="/images/image.gif"... |
位於example.org的HTML文件以及影像都已加上標籤,但敘述程序(script)卻沒有,因為敘述程序是從另一個網域抽取的(在此例子中是script.com)。文件上的標籤會被快取記憶所存取,但只包括以http://www.example.org/為開端的URL。因此,若要把敘述程序都加上標籤,就須要在我們的元標記中加進多於一個標籤,就像下一個範例一樣:
範例十七:單一元標記中含多個網域
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen true for "http://www.example.org/" r (cz 1 lz 1 nz 1 oz 1 vz 1)
gen true for "http://script.com/" r (cz 1 lz 1 nz 1 oz 1 vz 1))'>
元標記之首,評級服務識認以及小楷I不再在此重覆,只示範gen-true-for語句與評級的括號。
依這方法,你就可以在你的網站上建立一個標籤,把它加到從其他你無控制權的網站抽取的內容上。如果你的網站載有橫額廣告(banner advertising)這方法就特別有用。
你可以把多個標籤串連在一起,數目不限。例如,你可以把以上的所有範例標籤連起來成為一個。
範例十八:四合一標籤
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen true for "http://www.example.org/" r (cz 1 lz 1 nz 1 oz 1 vz 1)
gen true for "http://www.example.org/chat/" r (ca 1 lz 1 nz 1 oz 1 vz 1)
gen false for "http://www.example.org/bar.htm" r (cz 1 lb 1 nz 1 oz 1 vz 1)
gen true for "http://script.com/" r (cz 1 lz 1 nz 1 oz 1 vz 1))'>
8.3 有關HTML標記摘要
要常常留意的是,任何檔案,不管是一個HTML網頁,或是從其他地方抽取放進去的元素,在進入過濾器時,一定要載有標籤,又或過濾器的快取記憶一定要存有一個含有相關gen-true-for元素的標籤,即標籤要可以套用於正在進來的內容。
如果所有造訪者都必定是要經主頁進入你的網站,同時網站內所有內容都應該有相同的評級,那麼,只要在你根目錄(root directory)的索引檔案中放一個元標記,便可有效地為你整個網站加上標籤。但這種情況一定不常見。
如果你使用HTML元標記來為你的網站加標籤,那你網站內的每一頁所載有的標籤不只要涵蓋該頁,更要涵蓋所有被抽取進該頁的元素。
返回頁首
9 撰寫敘述程序(scripting)技巧,SSIs等
用敘述程序(script)與SSI去為網站加上標籤有幾種辦法。至於那一種才是最適合就要視乎你的網站的結構,因此不能一概而論,只能在些給你一點指引。
9.1 每頁用同一SSI
如果你的網站每一頁都是用相同的SSI,或小數SSI之一來寫<HEAD>部份,要加進ICRA元標記就很容易。
9.2 多個網域指向同一網站
如果有多個網域都是指向你的網站,(www與不含www的同一網域作兩個網域計算),那麼,一個調用系統變數的SSI就能省回不少空間。
範例十九:以SSI在網域名稱中撰寫
<meta http-equiv="pics-label" content='(pics-1.1
"https://icra.org/ratingsv02.html" l
gen true for "http://<!--#echo var="HTTP_HOST" -->" r (cz 1 lz 1 nz 1 oz 1 vz 1))'>
你仍可以依循範例十七的方法去加進更多標籤,以涵蓋你的橫額廣告:但要用硬性編碼。
9.3 在HTTP回應標題內用敘述程序(script)編寫標籤
CGI敘述程序(script)可以在HTTP回應標題或HTML標題內加入標籤,如果你想把標籤放在一個HTML元標記內,可用與你處理其他HTML的慣常方法去做,但你亦可以用較聰明的方法,就是把標籤納入HTTP回應標題內。
範例二十:用CGI把PICS標籤寫到HTTP回應標題內
print "pics-label: (pics-1.1 \"https://icra.org/ratingsv02.html\" l gen true for \"http://www.example.org\" r (cz 1 lz 1 nz 1 oz 1 vz 1))\n";
在以下常見的語句之前的任何地方
print "content-type: text/html\n\n";
或,如適用,伺服器的重導向句
print "Location: http://somewhereelse.com/\n\n";
註意:留意包著URL的雙引號
9.4 減底頻寬
如你設定伺服器,令它為每個檔案加上標籤,你就不用在標籤中加進gen-true-for元素,因此標籤就會短,對頻寬的影響亦會微不足道。可是,如果你有需要寫一些含有一個或多個gen-true-for元素的標籤,它們就可以很大,你亦不會想把標籤發送到一個在快取記憶中已載有所需標籤的過濾器,看看這個:
範例二十一:只有首次發送標籤
if (index($ENV{HTTP_REFERER}, $ENV{HTTP_HOST})==-1){
print "pics-label: (pics-1.1
\"https://icra.org/ratingsv02.html\" l gen true
for \"http://www.example.org\" r (cz 1 lz 1 nz 1 oz 1 vz 1))\n";
}
換句話說,如果到此頁的造訪者,是來自你網站的另一頁,那過濾器的快取記憶應該已經有相關的標籤,但如果他是來自其他地方(即是說你的主名稱,並非造訪者來自的URL的分支),那他們就不會有標籤,你就要發送給他們。
返回頁首
10 測試標籤
ICRA在www.icra.org/label/tester/提供一個在線的標籤測試器。測試有三種可能的結果:
- 綠燈 - 根據系統,在你URL上你曾申報的內容都已加上標籤。
- 黃燈 - 網頁上某些元素未加標籤。
- 紅燈 - 在你提供的URL未偵測到任何有效標籤。
10 標籤測試器如何運作
標籤測試器不是一種複雜的工具。它所做的,只是利用本身的工具(一個Perl模件),造訪有關的URL。如果在網頁上找到ICRA標籤,測試器就會認得,標籤中的gen true | false旗標也會被記下,下一步,測試器會開始分析文件內容,找尋諸如影像、JavaScript檔等外來元素。它的做法是找尋 “src=”(或等價句法)。如果有關的外在來源不被已找到的gen true標籤涵蓋,測試器就會造訪那些來源,再次試圖去找一個有效的標籤。若找到任何未有標籤的資源,就會以表列方式向用戶報告,同時,整體評核結果將會被設定為「黃燈」。
如你對一個載有標籤網頁內含有未標籤元素的概念不清楚,請參閱第8.2章。
還有其他兩種工具可供測試標籤用:ICRA的免費過濾器和Microsoft Internet Explorer的內容警告器。
10.1 ICRA過濾器
你可以從ICRA網站下載這個免費軟體,在任何Windows平台上使用。它是個不須瀏覽器可獨立運作的執行程式檔。始起設定是准許進入未有評級的網站(在「安全性」選項中設定),以及含有「以上各項皆沒有」的已評級網站(即ICRA五個主類別都設定為「全部封鎖」)。
要進行有效測試,你可能需要重設上述設定。
下載過濾器請到icra.org/icraplus/
10.2 MSIE內容警告器
使用這工具你也需要下載,但只是一個細小的文字檔,這檔案載有ICRA評級制度的定義,稱為.rat檔。設定內容警告器是要花點時間,請到/_zh-hk/faq/contentadvisor/下載.rat檔與參閱逐步講解的指示。
要進行有效測試,你要正確的裝好這工具。
返回頁首
11 HTTP與HTML並存
一個常見的問題是:如果我們設置伺服器,令它自動在HTTP回應標題中加入標籤,那我還可以在文件層面用HTML元標記取替原有的標籤嗎?
答案是不能,原因是:
正如在第8.1章所述,如果過濾器中有兩個標籤,兩個都適用於同一個URL,那套用在URL的將會是含有較匹配“for”語句的那一個標籤。因此,如果過濾器存有對http://www.example.org的一個評級,同時又存有對http://www.example.org/bar/的不同評級,那後者就會套用於所有在bar目錄中的URL,而那個適用於整個example.org網域的評級,就不被套用。
精確度越高就會越優先套用。
但一些不含有for語句的標籤又怎樣呢?根據PICS標準,這是最精確的一種標籤,因此會比含有gen true或gen false語句的標籤較優先套用。
另外,為效率起見,使用PICS的用戶一找到一個可套用於有關資源的標籤,就可能會不再作進一步搜尋。因此,如果一個檔案在進來時在HTTP回應標題內已含有一個標籤,過濾器就可能不會再搜尋HTML部份。
返回頁首
12 文件沿革
這是2.1版本。當中包括了Michael Radwin,Insight Eye UK的Colin,以及Waldo Kitty的人員就<VirtualHost>問題提供的意見,在此特向他們致謝。同時亦歡迎提供任何意見。
12.1 與1.1版本的分別
- 有關不採用Virtual Host集體指令的建議,已被刪除,看來效果理想﹗
- 有關標籤發出器各種選擇的部份已更新,反映icra網站現時提供之最新標籤發出器。
- 加進一整個有關HTML元標記與敘述程序(script)提示之章節。
12.2 與2.0版本之分別

Powered by |
|
|
 |
 |
|