Drupal专业开发指南 第20章 使用eval()

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

千万不要使用它。使用PHP函数eval(),你可能觉得它是进行元编程的极好的方式,或者想用它来减少多行代码,这个函数将一个字符串文本作为输入,并使用PHP解释器对其求值。这完全是一个错误。如果有任何方式允许一个用户使用eval()来操作输入的话,那么你就会将PHP解释器的威力暴露给用户。这距离泄露私密数据的时间也不会太长了,因为用户就可能使用这一方式来获取你的数据库中的用户名和密码。

Drupal版本:

Drupal专业开发指南 第20章 保护超级用户帐号

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

获取一个Drupal网站密码的最简单的方式是,打个电话给这个网站的秘书,这样说“你好,我是Joe。<一对客套话>。我是给你们的网站提供技术支持的,在技术支持中,我们遇到了问题。需要使用用户名和密码进行登录,你的用户名和密码是多少?”不幸的是,很多人会轻易的将这一私密信息告诉他人。尽管技术对此有所帮助,但是对于这种攻击,最好的办法还是对用户进行教育。

正因为此,最好不要将超级用户(用户1)授予任何人。对于任何维护网站的用户,只能授予他完成任务所需要的权限。这样,即使出现了安全问题,危害也是可以控制的。

老葛的Drupal培训班 Think in Drupal

Drupal版本:

Drupal专业开发指南 第20章 表单API的安全性

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

使用表单API的一个好处就是,它为你处理了许多安全性问题。例如,Drupal通过检查来保证,用户从下拉选择框中选择的值,确实是Drupal生成的选项中的一个。表单API使用了一系列的事件集,比如表单构建、验证、和执行。在验证阶段前面,你不能够使用用户输入,因为用户输入还没有被验证。例如,如果你使用的值来自$_POST,那么你就不能确保用户是否操作了该值。还有就是,使用#value元素在表单中传递信息,尽可能的使用它来代替隐藏域,因为恶意用户可以操作隐藏域,但是访问不了#value元素。

Drupal版本:

Drupal专业开发指南 第20章 Ajax安全性

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

 

当你需要使用Ajax比如jQuery时,你一般在开发Ajax的服务器端代码时,都会假定对这些代码的调用是通过JavaScript完成的,而与Ajax相关的安全性的一个要点是,恶意用户可以直接调用Ajax的服务器端代码(例如,可以使用命令行工具比如curl或者wget,或者直接在浏览器中输入该URL)。你需要从这两个方面来对你的代码进行测试。
 

老葛的Drupal培训班 Think in Drupal

Drupal版本:

Drupal专业开发指南 第20章 保护cron.php

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

Drupal中,有些周期性的调度任务是必须执行的,比如清理日志文件,更新统计等等。对于Unix系统,你可以使用cron任务,对于Windows,你可以使用任务调度器,来运行cron.php文件。可以通过命令行或者通过web服务器来运行该文件。在这个文件的执行中,它简单的做了一个完整的Drupal引导指令,并调用includes/common.inc中的drupal_cron_run()函数。这个函数使用信号量来阻止cron的重负运行(一个cron周期运行多次);尽管如此,特别小心的用户可能还想阻止任何用户访问http://example.com/cron.php。你可以通过在Drupal根目录下的.htaccess文件中添加以下代码,来实现这一点:

Drupal版本:

Drupal专业开发指南 第20章 用于生产环境的文件

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

并不是Drupal自带的所有文件,都是生产站点所必须的.例如,如果在一个生产站点上,有CHANGELOG.txt文件可用的话,那么互联网上的任何人都可以查看你的Drupal版本了(当然,一些高手黑客可用多种方式来探测你的网站是不是使用的Drupal;参看http://www.lullabot.com/articles/is-site-running-drupal)。表20-3列出了Drupal安装后,为了正常工作所需要的文件和目录;其它的都可以从生产站点上删除(不过要保留一份备份哦!)当然,你也可以采用另外一种方式,那就是限制对这些文件的读权限。

Drupal版本:

页面

Subscribe to Think in Drupal RSS