出于安全原因,我想从CodeIgniter迁移出去


I want to migrate off CodeIgniter for security reasons

我有一个使用CodeIgniter框架用PHP编写的网站。这项工作已经进行了几年,我最终想开源它。它目前运行了大约1万行PHP(不包括CodeIgniter库)。最近我很清楚,我不能一直使用CodeIgniter。

它的主要问题是,开发人员似乎要么不理解XSS和正确的转义,要么不在乎。即使是直接在属性(例如anchor())中结束的函数的参数也不会转义。生成表单输入的函数在是否转义方面不一致,文档对此主题保持沉默(我所能做的就是阅读源代码)。而"模板引擎",如果它可以被称为模板引擎,也不会逃脱,这使得它基本上毫无用处。每次我想输出链接时,我都厌倦了编写<?=anchor(html_escape('foo/bar/' . rawurlencode($baz)), html_escape($baz))?>。它让代码变得非常丑陋,我肯定我错过了一些地方。在某些情况下,输入被不适当地"消毒",这种行为无法关闭;例如,如果用户在任何形式的输入字段中输入一个包含%10的字符串,那么在应用程序看到它之前,该子字符串就会被删除。

我的代码依赖于许多CodeIgniter库,包括数据库(活动记录模式)、电子邮件、表单验证、分页和会话。

什么是另一个PHP框架:

  • 基于MVC模式
  • 有一个合适的模板引擎,不擅长转义
  • 相对容易从CodeIgniter过渡到(具有大多数相同的库)

有很多MVC框架。我个人使用Symfony。这是一个你可以在不需要无用库的情况下随意扩展的框架。其他需要考虑的是锂和Laravel

Symfony的用户群比其他用户群更大,但它们都相当稳固。您也可以将Composer与框架一起使用,以扩展第三方库。

您可以研究一下CakePHP,它基于Rails原理,应该足够快,可以在没有太多麻烦的情况下重写应用程序。

无论如何,Zend Framework应该是一个很酷的替代品。