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

Php 出于安全原因,我想迁移出CodeIgniter,php,codeigniter,frameworks,xss,Php,Codeigniter,Frameworks,Xss,我有一个用PHP编写的带有CodeIgniter框架的网站。这项工作已经进行了几年了,我最终想把它开源。它目前运行大约10000行PHP(不包括CodeIgniter库)。最近我很清楚,我不能继续使用CodeIgniter 它的主要问题是,开发人员要么不理解XSS和正确的转义,要么不关心。即使是直接在属性中结束的函数的参数(例如,anchor())也不会转义。生成表单输入的函数在是否转义方面是不一致的,文档对此主题没有说明(我所能做的就是阅读源代码)。而“模板引擎”,如果可以这样称呼的话,也无法

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

它的主要问题是,开发人员要么不理解XSS和正确的转义,要么不关心。即使是直接在属性中结束的函数的参数(例如,
anchor()
)也不会转义。生成表单输入的函数在是否转义方面是不一致的,文档对此主题没有说明(我所能做的就是阅读源代码)。而“模板引擎”,如果可以这样称呼的话,也无法逃脱,这使得它基本上毫无用处。每当我想输出链接时,我都厌倦了写
。这让代码非常难看,我肯定我错过了一些地方。在某些情况下,输入被不适当地“消毒”,这种行为无法关闭;例如,如果用户在任何表单输入字段中输入包含
%10
的字符串,则在应用程序看到该子字符串之前,该子字符串将被删除

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

另一个PHP框架是什么:

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

有很多MVC框架。我个人用我自己。它是一个框架,您可以在不需要无用库的情况下进行扩展。其他需要考虑的是和

Symfony上的userbase比其他的都大,但是它们都非常可靠。您还可以使用框架来扩展第三方库。

您可以了解它是基于Rails原则的,应该足够快,可以在不太麻烦的情况下重写应用程序


无论如何,
Zend框架
应该是一个很酷的选择。

为什么不像我做的那样扩展有问题的CI类,让它们像你做的那样呢?我不喜欢他们使用的整个黑名单XSS方法,所以我用自己的my_Security.php类扩展了核心安全类,并制作了一个白名单。所有类都可以这样做,操作相当简单,然后可以放入任何应用程序文件夹以覆盖默认方法。在我看来,这可能需要重写大部分CI库,如果我要这样做,那么我最好使用不同的框架。