Drupal专业开发指南 第20章 考虑数据类型

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-08-27 12:57

当在一个像Drupal这样的系统中处理文本时,由于用户输入将会作为站点的一部分展示出来,所以如果将用户输入看作一个带有类型的变量,那么就能帮我们很好的理解这个系统。如果你使用过强类型语言写过程序,比如JAVA,那么你将熟悉强类型变量。例如,在Java中,一个整数就是一个整数。在PHP(弱类型语言)中,使用PHP的自动类型转换,根据上下文,你既可以把整数看作字符串,也可以看作整数。但是优秀的PHP程序员都会仔细的考虑类型,并恰到好处的利用自动类型转换。同样,尽管是通过用户输入得到的,节点提交表单中的“Body”(主体)字段,也可以作为一个文本进行处理,如果我们把它看作具有特定类型的文本,那么就会更好的理解的它的本质。用户输入的是纯文本么?用户输入的文本中是否带有HTML标签,如果带有的话是否将它们也一同显示出来?如果带有HTML标签的话,这些标签中是否允许带有恶意的标签,比如JavaScript,它可以将你的页面替换成一个手机铃声的广告?在展示给用户的页面中,采用HTML格式;用户输入是各种文本格式类型的变体,在展示它们以前,必须安全的将其转化为HTML。如果我们使用这种方式来考虑用户输入的话,这能够帮助我们理解Drupal的文本转换功能的工作原理。文本输入的常见类型,还有将文本转化为另一种格式的函数,如表20-1所示。

Drupal版本:

Drupal专业开发指南 第20章 编写安全的代码

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-08-27 12:53

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

一个恶意用户可以使用多种方式来攻击你的Drupal站点。这些攻击方式包括,向你的系统中注入代码并让它执行,操纵你数据库中的数据,查看用户无权访问的资料,通过你的Drupal站点发送垃圾邮件。在本章,我们将学习如何编写安全的代码来阻止这些攻击。
幸运的是,Drupal提供了一些工具,使用它们你就可以很容易的消除这些常见的安全漏洞。

老葛的Drupal培训班 Think in Drupal

Drupal版本:

总结

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2009-08-26 15:56

当读完这一章后,你应该可以:

    能够从一个Drupal站点上发送XML-RPC请求到一个不同的服务器上
    能够实现一个基本的XML-RPC服务器
    理解Drupal是如何将XML-RPC方法映射到php函数上的
    能够实现简单的和复杂的xmlrpc钩子
    了解Drupal内置的XML-RPC方法
老葛的Drupal培训班 Think in Drupal
 

Drupal版本:

在hook_xmlrpc()中进行自动的参数类型验证

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2009-08-26 15:50

    xmlrpc钩子有两种形式。简单的形式,如例子remotehello.module中所展示的,它简单的将一个外部的方法名映射到一个函数上。在一个更高级的形式中,它描述了方法的方法签名;这里指的是,它返回的是什么XML-RPC类型,以及每一个参数的类型(参看http://www.xmlrpc.com/spec来查看类型列表).下面是remotehello.module的升级版,xmlrpc钩子的形式更复杂一些:

Drupal版本:

页面

Subscribe to Think in Drupal RSS