【 在 Dog@bbs.tongji.edu.cn-SPAM.no ( 乐 逍 遥 | 多晒太阳) 的大作中提到: 】
: 在pubilc_board函数(libBBS/boards.c line 1306)中,
: 限制读取权限但 PERM_DEFAULT 可以访问 的时候,也会返回true,
it's a feature
: 在PHP扩展函数( bbs2www/phplib/phpbbs.board.c line 260 )
: PHP_FUNCTION(bbs_safe_getboard)函数中,
: 使用了public_board函数来判断版面是否有权限读,
: 这样一些限制读取权限但 PERM_DEFAULT 可以访问 的版面,
: 理论上应该是wwwguest不可以访问,
: 但实际上这时却是wwwguest可以访问了,这应该算是bug吧?
i don't know if it is a bug
:
: 主要是会导致有些站原来打算不让搜索引擎抓的版面也可能会被抓去了
: 附pubilc_board原源代码:(libBBS/boards.c line 1306)
: /* etnlegend, 2005.10.03 */
: /*
: 发信人: flyriver (江~~忙碌生活), 信区: ****
: 标 题: Re: 小bug吧 (转载)
: 发信站: 水木社区 (Mon Oct 3 11:10:18 2005), 站内
: 我认为改动 normal_board() 这类的函数要慎重,
: 如果测试不够充分就容易造成信息泄漏。
: normal_board() 最初好像是为了避免内部版面也过滤关键字编写的,
: 现在的用途已经大大扩展,所以还是得小心。
: */
: int public_board(const struct boardheader *bh){
: //有身份限制或者有俱乐部读限制
: if(bh->title_level||bh->flag&BOARD_CLUB_READ)
: return 0;
: //无权限限制或者限制发表权限或者限制读取权限但 PERM_DEFAULT 可以访问
: if(!(bh->level)||bh->level&(PERM_POSTMASK|PERM_DEFAULT))
: return 1;
: //其余情况
: return 0;
: }
: int normal_board(const char *bname){
: const struct boardheader *bh;
: if(!(bh=getbcache(bname)))
: return 0;
: return public_board(bh);
: }
--
FROM 61.51.120.*