You are here

Drupal专业开发指南 第20章 处理用户输入

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

 

当用户与Drupal交互时,一般都是通过一系列的表单来完成的,比如节点提交表单、评论提交表单。用户也可能使用blogapi module来发布一个基于Drupal的日志。Drupal的用户输入方式可以总结为“存储原始的;过滤输出的”(store the original; filter on output)。这样,数据库中总会保存一份与用户输入内容完全一致的备份。当用户输入的内容准备用来生成web页面输出时,就应该进行过滤了,这样潜在的恶意代码就被中和了。
当用户输入的内容没有经过安全处理就在你的程序中执行时,就可能引起安全漏洞。当你编写你的程序时,如果你没有全面的考虑各种情况的话,就会留下安全隐患。你可能期望用户输入标准的字符,而事实上他们可以输入非标准的字符串,比如控制字符。你可能看到其中包含字符%20的URL;例如,http://example.com/my%20document.html。这是一个为了与URL规范(参看http://www.w3.org/Addressing/URL/url-spec.html)兼容,对空格字符进行编码后的结果。当有人保存了一个名为my document.html的文件,并且可从web服务器上请求它,那么就会对空格编码。%意味着编码了的字符,而20则因为这它是ASCII字符 32(这里的20是32的16位进制表示)。恶意用户可通过各种诡计,来使用编码字符给你的网站带来麻烦,你将会在本章的后面看到这一点。
 

老葛的Drupal培训班 Think in Drupal

Drupal版本: