SA-2008-069 –Drupalr 5.x 和6.x版CCK- XSS漏洞
- 编号:DRUPAL-SA-2008-069
- 项目:内容构建工具集CCK(第三方模块)
- 版本:drupal5.x和 drupal6.x
- 日期:2008年11月5日
- 安全风险:低
- 攻击点:远程
- 漏洞:跨站点脚本RSS
Drupal6中自带了内容翻译模块,看样子很是强大.上次有人问我,如何实现多语言的支持,我试用了一下,看到可以翻译内容的地方,就没有往下继续研究.
在drupal5中,多语言的支持是需要借助于扩展模块的,那时我们都用localizer,当你知道如何翻译一个节点的时候,就明白如何翻译菜单,区块这些杂七杂八的东西了。
这周我会专门针对这些问题,作出回复,不准的地方希望大家一起纠正,完善。
1、module 开发
2、theming 开发
3、database 如何控制我新增加的表格采用不同的表前缀(以模块区分)
4、- drupal 中的hook menu项,有
MENU_CALLBACK -- 表示不在管理列表中显示,而是做为一个普通的应用程序
MENU_NORMAL_ITEM -- 表示需要在后台设置菜单栏中显示
_perm 存放相应的模块权限关键字
_admin_settings 模块参数设置函数,函数最终通过system_settings_form($form); 绘制相应的form表单,系统会自动
将管理人员输入的参数保存至drupal的系统参数配制表,并通过variable_get(NODEVOTE_RESULT_DISPLAY_TEASER, 0)获取相
应的系统参数配置值,第一个参数代表关键字,第二个参数代表默认值。
5、drupal 调试时输出其对应的SQL语句
在drupal中,page的默认模板建议是根据url进行判断的,对于首页,则使用page-front.tpl.php。对于大多数时候,这都可以满足需要。但是可不可以根据节点的类型来定义其页面模板文件呢?就是说节点类型为A的节点页面,使用page-A.tpl.php,对于节点类型为B的节点页面使用page-B.tpl.php。很多人问过我这样的问题。
可以这样,可以使用Page-nodetype.tpl.php这种形式。但是你需要在预处理函数中,加点东西。在继续本文以前,先介绍一个最简单的方法。
我以garland为基主题,创建了一个子主题windowp以后,除了子主题的info文件以外,还加了一个css,不过这些都是空的。我想要实现的是,为特定的节点类型专门的定制一个模板文件。也就是node-product.tpl.php。
我把这个文件node-product.tpl.php放到子主题里面以后,看不到效果,因为我里面放了print_r语句,看看起不起作用,发现没有用,还是默认的,我就轻空缓存,还是没有用。也没有找到好的资料,我只是想在子主题下面覆写特定的节点类型的模板而已。
今天给人做项目,用到了CCK,装上以后,发现有最新的版本发布了,应该就是正式版了.上drupal.org上一看。果然如此。
新版的CCK有了很大的改进,既包括新功能,也包括改进的代码和APIs。在Drupal5的时候,有些点子确实不错,但是限于技术的原因,以及Drupal5的局限性,我们很难或者说不能实现很多特性:比如拖动技术,用户友好的“Add more”特性,提供一个API,以及更多的工具让用户定制CCK的行为,以及提供更多的文档。
很多人用drupal建站,需要用到drupal的权限,有时候需要实现层级的权限结构,这种层级性质的权限结构,在国内时很流行的.不少人向我咨询,drupal能不能解决这样的问题,我告诉他们,可以,完全可以.我以前做过类似的权限功能的实现,在项目中多达10+种角色,drupal看似呆板的用户管理,完全能够满足各种权限方面的需求(应该说是大部分的吧,不能太绝对了).
首先是基本的,权限,角色,这些基本的功能,要用好,看能不能实现你的需要,如果实在不行的话,推荐使用ACL,这个用于内容的访问控制.ACL是Access Control list的缩写,就是访问控制列表.下载地址在于http://drupal.org/project/acl.
书的作者是这方面的资深人士,主要讲解多媒体网站的构建心得.包括图片网站,音频网站,视频网站,还有文件管理.这本书讲解的是drupal6.x相关的。大量的使用了CCK,views模块。当然,很早以前就说出版这本书了,这次是正式出版。
Drupal这两年在国外出了很多书,看起来确实很火,drupal能够成为年度最佳的开源cms,是和这些书籍的推动分不开的,一本好书,一篇好的技术文章,能够让人少走很多弯路。