互联网内容标签协会

A more up to date version of this document is available in English.

标签专业网站

是选择不是审查

目录

为网站进行标签背后的概念是十分直接 ― 用户收取内容时,亦会收到一套含有密码的描述符,根据家长的设定,过滤软体就能阻截或容许接收。听起来像是内容审查者梦寐以求的工具,但事实并非如此  ―  原因如下:

  1. ICRA的内容描述符的设计是尽量达致容观。可加上个人判断的空间甚少(虽然我们不会否认,即使我们如何努力,都会有少许空间。)
  2. 负责为你网站评级的是你,不是ICRA。
  3. 决定儿童可以或不可以看某些内容的是他们的家长,不是ICRA。

所采用的平台是互联网内容客拣选平台(PICS),其标准是由W3C所设定。亦有其他评级服务使用PICS系统,但它们或多或少都会带有他们本身的文化价值观。ICRA的系统是唯一以全面国际化与跨文化目标而设计的系统,且得到互联网界很多知名机构的支持。

评级标签可以在所有层面使用,由伺服器所发出的每一个档案,不论其网域为何,以至每个个别档案。

要一个以PICS为基础的过滤器,利用内容标签决定是否容许从一个网站下载档案 ― 不论这个档案的格式是什么(HTML文件、影像或其他),都要先满足两个条件:

  1. 有关档案必须在其版头位置载有一个评级标签。
  2. 过滤器内必须已存有一个可以适用于有关待处理内容的标签。

这令标签过程可以用两种方法其中之一进行:

  1. 设定伺服器,令它在每一个它所处理的档案内加入PICS标签。如使用这个有效率的「一次过」方法,掌握控制权的是伺服器工程师。
  2. 在每一页的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过滤器的控制台。

(DIAGRAM OF ICRAfilter –

选择了「封锁所有坏语言,或逐项选择封锁/准许」,其他的选择就不适用,意即过滤器要有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网站http://www.icra.org/decode/中有详细解释。

如较早前提到,如果标签只应随着某些档案发送,再套用于本身没有自己标签的内容,那就须要加上进一步的资料,去控制过滤设备应该如何高速缓存(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标签

一个申报foo.com网域上「以上各项皆没有」,适用于所有类别的完整ICAR标签就会是:

‘(pics-1.1 “http://www.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 “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评级服务的元素。

4 有关伺服器配置的一般意见

以下两点提示可令我们更快捷完成程序:

  1. 如果你在每一个你处理的档案中加上标签,那你就不需加进任何有关该标签指向什么的资料,因为所指的是含有标签的那个档案。
  2. 配置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)设定标题

要为一整个网站加上标签,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.example.org加标签就会如此:

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 (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))’

有了上述的指令,不论网页之后会被网站管理员再更新或修改多少次,聊天的部份都会附有这个标签。

这个做法有一个危险,就是任何含有chat这四个字母的URL都会附有标签。试想有一个网站叫Chatanooga Choo Choo.,就会出问题。

要解决这个问题,就要贵机构不同部门的人士通力合作。如果上述的集体指令稍作修改,在「chat」字后面加上「/」符号,即变成,那么,URL内含有「 chat/」的网页才会附有有关的标签。

范例九:使用正规表达式 (Regular Expression)

正规表达式是个大课题,我不会在这里详细讲授﹗我们要知道的,是它们是十分有用的工具。试想像你的伺服器上有四个网站:

  • cats.com
  • dogs.com
  • wartdogs.com
  • zebras.com

要为cats,dogs或其他由 “a”至 “m”字母开头的网站设定集体指令,可如此写:

而为wartdogs,zebras与其他由 “n”至 “z”开头的网站设定集体指令,就会是如此:

(你到现在应已见过不少PICS标签,应知道以上只是集体指令的开端﹗)

范例十:设定你自己的分类体制

使用百撘或正规表达式,你可以建立你自己的简易评级系统,所须的只是以一个预设的方法为档案取名。举例说,若你想把网站的内容以年龄为基础去分类,某些内容应属 “PG(家长指引)”或类别 “12”,即你可以设置以下两个指令:

 

那么,在你网站内,所有在附注档名前有「-pg」的档案就附有你的PG评级,

所有在附注档名前有「-12」的档案就附有你的12评级,而所在附注档名前没有上述字串的档案,就会得到启始设定的评级(如果你有设定)。

使用一个 .htaccess档

要对PICS标签作增减或修改,又不想关闭或重新启动伺服器,是可以的。做法是在一个.htaccess file中加进HTTP标题回应(Header Responses)。

注意:只有与集体指令才可以在.htaccess档中使用 ,或类是不能的。

众所周知,使用一个.htaccess档的得失,是一个灵活性与伺服器负荷之间的平衡。对我们来说,它最有用是用来为短暂性的内容加标签。地域覆盖面广的机构或网络,应留意以下的建议。

5.31 只是个建议

你可考虑建立一个次级 .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  (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))’

最初,是试验把这两个集体指令放在两个不同的档案内:.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格内填上标签本身如下:

[DIAGRAM – ADD/EDIT CUSTOM HTTP HEADER – P.18]

这就完成了。如果你的网站自己拥有一个独立的伺服器,你亦用IIS,你就可以把同一个评级加到每一页 — 这个标签会被加到整个网站,而不会显示任何元标记(meta tag)。

你亦可以同一个方法,根据需要为目录或个别网页加上标签(只需在适当的目录或档上右击便可)。但要留意的是一些Apache的「额外功能」,例如用独立档案储存与管理标签的功能,IIS就久奉。

7 检视HTTP回应标题 (Response Headers)

要测试加标签的工序是否成功,唯一最有效的方法,就是在启动过滤器后浏览有关的网站。MSIE内容警告器在这工作上十分管用,但你要先装设ICRA.rat档。你亦可选择使用我们的免费ICRAfilter软体。

要检视你在HTTP回应标题内的标签,你可以远程登录(telnet)你的网站,但网上亦有几种工具可令你更方便的检视标签,例如DJ Delorie的 HTTP Header Viewer (HTTP标题检视器),位置是 http://www.delorie.com/web/headers.html。

8 用HTML元标记 (meta tag) 为网站标签

除了用HTTP回应标题外,PICS标签亦可以靠HTML页中HEAD部份内的元数据格式发送。

范例十一:为 www.example.org而设计的完整ICRA/RSACi标签

此标签内的元素与第三章中所述的是一样的,唯一分别是标签是以一个http-equiv meta tag (http等价元标记)格式发送。如果你用这个方法,gen-for的元素就十分重要。紧记,要令过滤器把一个评级标签套用于一个特定的网上资源,就要标签随有关的资源一并发送,或过滤器一定要在快取记忆中已储存了一个可套用于该资源的标签(后者对我们较重要)。

同时,HTTP是个无分国界的协定,每次索取一个在外面的档案,都是用户与伺服器间的一桩完全独立事务。

范例十二:一个简单的HTML分段 (无标签)

1) 2) 3) A title 4) 5) 6) 7)

That title again

8)

这里,bar.htm页附有一个标签,申报内容根据ICRA制度含有粗鄙语或污言秽语,以及根据RSACi制度含有轻度咒骂语或污言秽语。

问:此页上影像会套用什么标签?

答:任何存于快取记忆内,含有相配合gen-true-for语句的一般标签,但是这一个,这一个适用于HTML文件。

问:标签会被存到快取记忆吗?

答:不会。只有gen-true标签才会被存取。

8.2 为从其他网域取得的资源加标签

范例十六:HTML分段

看看你可否在以下的范例中找到错处  –   与范例十三只有一处不同:

1) 2) 3) A title 4) 5) 6) 7) 8)

That title again

9)

元标记之首,评级服务识认以及小楷I不再在此重复,只示范gen-true-for语句与评级的括号。

依这方法,你就可以在你的网站上建立一个标签,把它加到从其他你无控制权的网站抽取的内容上。如果你的网站载有横额广告(banner advertising)这方法就特别有用。

你可以把多个标签串连在一起,数目不限。例如,你可以把以上的所有范例标签连起来成为一个。

范例十八:四合一标签

8.3 有关HTML标记摘要

要常常留意的是,任何档案,不管是一个HTML网页,或是从其他地方抽取放进去的元素,在进入过滤器时,一定要载有标签,又或过滤器的快取记忆一定要存有一个含有相关gen-true-for元素的标签,即标签要可以套用于正在进来的内容。

如果所有造访者都必定是要经主页进入你的网站,同时网站内所有内容都应该有相同的评级,那么,只要在你根目录(root directory)的索引档案中放一个元标记,便可有效地为你整个网站加上标签。但这种情况一定不常见。

如果你使用HTML元标记来为你的网站加标签,那你网站内的每一页所载有的标签不只要涵盖该页,更要涵盖所有被抽取进该页的元素。

9 撰写叙述程序(scripting)技巧,SSIs等

用叙述程序(script)与SSI去为网站加上标签有几种办法。至于那一种才是最适合就要视乎你的网站的结构,因此不能一概而论,只能在些给你一点指引。

9.1 每页用同一SSI

如果你的网站每一页都是用相同的SSI,或小数SSI之一来写部份,要加进ICRA元标记就很容易。

9.2 多个网域指向同一网站

如果有多个网域都是指向你的网站,(www与不含www的同一网域作两个网域计算),那么,一个调用系统变数的SSI就能省回不少空间。

范例十九:以SSI在网域名称中撰写