北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 5846|回复: 3

fluffos权限系统的一个问题

[复制链接]
发表于 2013-8-12 14:50:15 | 显示全部楼层 |阅读模式
int_load_object()函数调用了check_valid_path()以检查是否有权限装载该物品。该函数调用master的valid_read来确定权限。
大多数的lib中master调用securityd来检查valid_read。
如果securityd被dest后,整个系统就起不来了。因为要重新load securityd,就要通过master检查,而securityd还不存在,需要load_object。

这样,就只能把valid_read的检查直接放在master.c里了。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-8-12 14:56:08 | 显示全部楼层
valid_read 是master的一个 apply , 如果这个apply需要加载其他的 Object那必须 要在这个函数里处理才行.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2013-8-12 15:51:21 | 显示全部楼层
valid_read 是master的一个 apply , 如果这个apply需要加载其他的 Object那必须 要在这个函数里处理才行.
sunyc 发表于 2013-8-12 02:56 PM



    valid_read里加载不了任何object,因为这会引发对valid_read的递归调用。一个办法是对某些特别的object,比如securityd直接return 1,但是fluffos会对.h也做valid_read检查,所以securityd include的所有头文件也必须特殊处理,包括globals.h。这个耦合就有些重了。
    mudos里,load_object是不会检查valid_read的。valid_read是为了避免越权读取文件内容,比如玩家可以看到.c的代码,或者可以删除存档。load_object做这个检查必要性不大。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-8-17 10:06:56 | 显示全部楼层
我和jason说了, valid_read里面 传入了 load_object  这个参数 可以针对load_object一律允许
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-20 11:43 AM , Processed in 0.010987 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表