背景:
阅读文章

关于mudlib安全性的考虑

[日期:2007-05-06] 来源:  作者: [字体: ]

*******
等级安全
*******


1.使用author_file来表示object的等级,也就是object等级只与其目录有关系(?)

2.不对this_player()做等级验证(user->save()的例子)

3.对previous_object_list(previous_object(-1))做等级检查,取除this_player()

外最低等级为previous_object的等级,再和this_object做等级检验。
 

********
安全检查
********

涉及安全方面的包括read,write,exec,destruct,clone

(update = destruce + create)

某些object不允许被低等级者(比如/u目录)destruct和clone(见函数等级检查)

权限控制分为读权,写权,(函数)执行权,destruct权和create权。
 

**********
读权的控制
**********

读权是基本权限。但读权的控制有可能导致player因其等级低而无法读取

他的data(因此在安全检查时要忽略this_player())。另外要防止的情形是

低级wiz通过写自己目录下的程序来读写高级别文件(因此安全检查是对所有

previous_object的list而不仅仅是previous_object)。
 

基本上大部分程序是可读的,但/data/user,/data/login目录例外,player

的数据和passwd应该是低中级wiz不可见的。
 

**********
写权的控制
**********

写权是最重要的安全权限,在现行mudlib里对它的控制不够严密。

对写权的控制体现为:

低级wiz只能通过roommaker写自己的workrom等

中级wiz可使用edit,但只能编辑自己目录下的区域(也就是可以通过限制

他目录下的文件的权限来实现权限控制,即写权控制执行权)

高级wiz可编辑/d,/std,/obj目录

天神级可编辑/adm和/data目录

(实际级别可以再细分)
 

对写权的控制还有一种特例:

类似edemote,可允许低级wiz通过命令修改一些文件(如emoted.o),

这些文件是供高级别程序读取的(如emoted.c)。这种修改不涉及函数体

的修改,而且容易跟踪,还是比较安全的。

 
************************
执行权--函数中的等级检查
************************

某些涉及修改玩家属性的函数(如set,add,delete,skill_improve等)

将在执行前检查previous_object_list和this_object()

等级排列为:

wiz(把wiz等级排在比player还低是为了允许qc程序改变wiz属性而不能改变player)

player(即object级)地图 ,obj , npc....等

std(标准级)feature,skills等

master(系统级)daemons,user data及对user data进行操作的文件

adm(最高安全级)甚至连天神都不能修改的文件:主要是一些日志文件

各等级之间的读,写,执行关系待最后确定。
 

************************
update权(destruct+create)
************************

destruct的权限可在函数执行中控制

至于object的生成,可在master的valid_object里控制

可避免较低级别wiz通过程序生成某些受控制的object(特别是宝物)

 
******************
一些涉及安全的efun
******************

如exec,ed等都必须禁止valid_override
 

*****************
命令级的安全控制
*****************

可考虑加入第二密码命令passlock

除login password之外还有一个第二密码passwd2

某些命令,如suicide,kill,abandon等,以及所有wiz命令必须通过passunlock

解锁才能执行。假如不希望别人使用你的机器时用你的mud窗口,可运行passlock

加锁。

第二密码可以用比较灵活的方式:例如是一个8位数字,passunlock时随机询问

其中三个数位数字的和,差,积等......若回答错误则会踢出系统。

当login时自动执行passlock(也就是每次login必须解锁才能执行特定命令)

 

尊重作者 转载请注明出处52mud.com

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容      
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论