使用 db_query() 来确保查询语句的安全

攻击网站的一个常见方式称为 SQL 注入。让我们看一个没有考虑安全性的人编写的模块。这个人仅仅想用一种简单的方式列出特定类型节点的所有节点的标题: 阅读全文 »

使用 filter_xss()

跨站脚本(XSS)是攻击网站的一种常用方式,攻击者可以向一个网页插入他/她自己的代码,然后使用这些代码进行各种破坏活动。

注意:XSS 攻击的例子,参看 http://ha.ckers.org/xss.html。

假定你允许用户向你的网站输入 HTML,期望他们这么输入

Hi! My name is Sally, and I… 阅读全文 »

编写安全的代码

几乎每天我们都可以看到关于这种或者那种软件具有安全漏洞的头条消息。对于每个严禁的开发者来讲将恶意用户拒之门外是头等大事。

一个带有恶意的用户可以使用多种方式来攻击你的 Drupal 站点。这些攻击方式中包括,向你的系统中注入代码并让它执行,操纵你数据库中的数据,查看用户无权访问的资料,通过你的 Drupal 站点发送垃圾邮件。在本章,我们将学习如何编写安全的代码来阻止这些攻击。

幸运的是,Drupal 提供了一些工具用来很容易的消除这些常见的安全漏洞。 阅读全文 »

Drupal专业开发指南(54)-第19章 XML-RPC

9 30日 2008 分类: Drupal

Drupal 可与外部系统良好的集成。也就是说,如果存在一个开放的标准,drupal 可以通过内置的或者贡献的模块两种方式支持这一标准。XML-RPC 也不例外。通过本章,你将学习到如何利用 drupal 的发送和接受 XML-RPC 调用的能力。

什么是 XML-RPC

一个远程过程调用(remote procedure call)是指一个程序要求另一个程序执行一个函数。XML-RPC 是调用通过 XML 格式编码并通过 HTTP 发送的远程过程调用的标准。XML-RPC 协议是由 UserLand 软件公司的 Dave Winner 与微软合作创造。它专注用于分布式网络系统之间的相互对话,比如当一个 Drupal 网站需要另一个 Drupal 网站的一些信息时。 阅读全文 »

导出你的翻译

当你选择并翻译完你想要修改的所有字符串后,当你要建立下一个 Drupal 站点时,如果再重复做同样的工作的话,这是不能让人接受的。通过使用“管理语言“标签下的导出函数,你可以将你的翻译成果保存到一个带有后缀 .po 的特定文件。 阅读全文 »

Drupal 的开发和使用,都是通过一个国际化的社区完成的。因此,Drupal 默认支持本地化。本地化是将用户接口的文本替换为用户本地的翻译过的文本。在本章,我们将看一下如何启用本地化,以及如何有选择的将 Drupal 的内置的字符串替换为我们自己的。然后,我们看一个完全的翻译,并学习如何创建、导入和导出它们。 阅读全文 »

让我们编写一个基于 jQuery 的 Drupal 模块。我们将建立一个如图17-2所示的 Ajax 的投票小组件,它可以让用户为喜欢的文章添加一分。我们使用 jQuery 来处理投票和总分的改变,而不用重新加载整个页面。我们还添加一个基于角色的授权,这样只有具有”rate 内容”授权的用户才允许投票。由于每个用户的每次投票只能增加一份,让我们将模块的名称命名为”plus1″。

图17-2 投票组件 阅读全文 »

使用 XPath

对类 CSS 语法的熟悉,使得没有 JavaScript 经验的人们可以方便的使用 JavaScript 了。但是这仍然在访问元素的灵活性方面存在局限性。如果你要操作的 HTML 元素没有 ID 或者类选择器,那该怎么办呢?使用 XPath,你可以创建更灵活的访问规则来查找 HTML 元素。XPath 还具有正则表达式的能力。下面是几个例子: 阅读全文 »