大部分 UNIX 站点服务器具有一个有权使用站点服务器的用户列表。这个访问文件是由站点服务器维护且独立于可以交互地登录到此计算机的用户和组的列表。
Microsoft® Windows® 95/98 和 Microsoft® Windows NT® 上运行的许多站点服务器也使用 UNIX 安全性模型。其中包括可以使用 Microsoft® FrontPage® 服务器扩展的站点服务器:FrontPage Personal WebServer、NetScape FastTrack、NetScape Enterprise、NetScape Communications、Netscape Commerce 和 O'Reilly WebSite 。对 UNIX 安全性模型的说明也适用于这些服务器。
一个站点服务器的访问文件的内容包括每个用户的名称和密码和有关内容的详细信息、 CGI(公共网关接口)脚本以及其他允许每个用户访问的资源。 在 Apache 和 NCSA 站点服务器上,此文件名为 .htaccess; 在 Netscape 服务器上,此文件名为 .nsconfig.访问文件将用户、用户组和 IP 地址与不同等级的权限:GET(读取)、POST(执行)、PUT(写入)和 DELETE 联系起来。 例如,使用 FrontPage 的创作者有权使用 HTTP POST 命令(以访问 FrontPage服务器扩展和保存新内容),而一个有浏览权限的站点访问者会允许使用 HTTP GET 命令(以读取内容)。定义每组成员(例如,创作者)的列表是定义在由访问文件指向的单独的文件中。
一个站点服务器常常存有多个访问文件。每个访问文件提供包含它的目录的安全性,也提供该目录下的所有自己没有访问文件的子目录的安全性。通过创建整个网页服务器的访问文件,可以使有不同等级权限的不同的用户组访问服务器的不同区域。
要访问主机的文件系统和在主机上运行脚本和程序,站点服务器要当作一个 UNIX 帐号运行,这个帐号通常是“www.” 因为站点服务器在一个 UNIX 帐号下运行,它只有在使用同一个 UNIX 帐号的权限下对有权运行的程序和有权访问的文件的操作才有效。在多用户环境下,这样可能会导致一个安全性问题,因为一个用户的 CGI脚本可能会读取服务器上面另外一个用户的内容区域。 如果支持写入访问问题就变复杂了,这和 FrontPage 客户端的问题一样。如果一个用户的 CGI 脚本有足够的权限在用户自己的内容区域写入文件, CGI脚本也可以在其他用户的内容区域写入或覆盖文件。
要处理这个安全性的问题(这个问题是所有 CGI脚本共有的,包括 FrontPage 服务器扩展),您可以设置一个 CGI 脚本执行权限的 SUID(设置用户 ID)位。这就迫使站点服务器和创作的内容转换到脚本运行时 CGI 脚本所有者的 UNIX 用户帐号。因为脚本保存在内容区域中,而内容所有者的帐号不会有写入其他用户的内容区域的权限,设置脚本的 SUID 位可以避免未经授权的文件写入。使用 FrontPage服务器扩展管理工具,您可以为在每个内容区域中的 FrontPage 服务器扩展要运行的可执行文件设置 SUID 位。
在 UNIX 站点服务器验证过程中,当一个站点访问者浏览站点服务器上的网页时:
站点服务器收到一个 HTTP GET 请求,其中包括用户的名称和密码。
站点服务器在适当的访问文件中检查用户的权限。
如果按此用户的权限无法执行 GET,站点服务器回复一个 401 错误,指出此用户是未经授权的。Web 浏览器接着就提示输入新的名称和密码然后重新提交请求。
一旦用户通过验证,站点服务器试图从 UNIX 文件系统中取出内容。如果站点文件系统允许站点服务器访问这些内容,这些内容会通过 HTTP 传送到 Web 浏览器。
POST 也按相同的方式处理。 当站点服务器收到一个 HTTP POST 请求,和创作者使用 FrontPage 向 FrontPage 服务器扩展传送请求的情况一样,站点服务器会在适当的访问文件中检查用户的权限。一旦用户通过验证,站点服务器试图运行 POST 请求的程序。如果这个程序设置了 SUID 位,这个过程会在此文件所有者的 UNIX 用户帐号下运行。否则,此过程会在站点服务器的 UNIX 帐号之下运行。
UNIX 站点服务器通常使用基本验证 (Basic Authentication) 检验客户端程序。当服务器使用基本验证时,Web 浏览器(或 FrontPage 客户端)提示用户输入用户名称和密码。然后将用户名称和密码用明文送出。(有些站点服务器使用被称作的 MD5 加密技术,但是 FrontPage 不支持这种方法。)
FrontPage 使用基本验证,因为这是唯一可通过任何防火墙和代理服务器工作的验证技术。因为基本验证以易于译码的格式传送密码通过网络,用这种方式传送的密码很容易被网络间谍窃取。如果您关心安全问题,应使用安全套接层 (SSL) 将您的站点服务器的所有通讯加密。
在 FrontPage 里,为每个 FrontPage 扩展的站点定义了三种用户:管理员、创作者和浏览者(站点访问者)。权限是渐增的:所有创作者都有浏览权限,而所有管理员都有创作和浏览的权限。
每个 FrontPage 扩展的站点(包含每个子站点)包含三个可执行的 CGI 脚本。这些脚本是创建在 FrontPage 扩展的站点最顶层目录下的目录中:admin.exe 用来管理任务,author.exe 用于创作站点和 shtml.exe 用于浏览阶段的组件例如表单处理程序。FrontPage 通过给这些脚本传送 HTTP POST 请求,完成所有创作和管理任务。
网页服务器的访问文件里列出了 FrontPage 扩展的站点的创作者、管理员和浏览者,并指定哪些用户可以向这些脚本发送 POST 请求:
可以 POST 到 shtml.exe 的用户是浏览者(站点访问者)。
可以 POST 到 author.exe 的用户是创作者。
可以 POST 到 admin.exe 的用户是管理员。
在 FrontPage 里,为每个 FrontPage 扩展的站点分别定义管理员、创作者和浏览者的列表。每个用 FrontPage 扩展的子站点或者继承父站点权限(管理员、创作者和浏览者列表),或者使用其独有的权限。和其他的 CGI 程序一样, FrontPage 服务器扩展只有保存在标记为可执行目录下时才可运行。
FrontPage 服务器扩展保存在每个 FrontPage 扩展的站点的根目录下的三个目录里:
/FrontPage-extended web root
/_vti_bin
shtml.exe
/_vti_adm
admin.exe
/_vti_aut
author.exe
服务器的配置文件需要被改成将 _vti_bin、_vti_adm 和 _vti_aut 标记为可执行目录。您可以使用 Fpsrvadm 来初始并控制这个操作,它是 FrontPage 服务器管理工具。
要降低支持 FrontPage 扩展的站点所需的磁盘空间,保存在不同的 _vti_* 目下的基于 FrontPage 的可执行文件是一些存根可执行文件。它们都调用安装在目录 /usr/local/frontpage/version4.0/exes 下的完整的可执行文件。
阅读(490) | 评论(0) | 转发(0) |