我有一个用PHP编写的CodeIgniter框架网站。这项工作已经进行了几年,我最终想开源。它目前运行大约10,000行PHP(不包括CodeIgniter库)。最近我很清楚我不能继续使用CodeIgniter。
它的主要问题是,开发人员似乎不理解XSS和正确的转义,或者他们并不关心。甚至直接在属性中结束的函数的参数(例如,anchor()
)也不会被转义。生成表单输入的函数关于它们是否转义以及文档是否对此主题保持沉默是不一致的(我所能做的就是阅读源代码)。而“模板引擎”,如果它甚至可以称之为,也不会逃脱,这使它基本上无用。每次我想输出链接时,我都厌倦了写<?=anchor(html_escape('foo/bar/' . rawurlencode($baz)), html_escape($baz))?>
。它让代码变得难看,我确信我错过了一些地方。在某些情况下,输入被不恰当地“消毒”,并且这种行为无法关闭;例如,如果用户在任何表单输入字段中输入包含%10
的字符串,则在应用程序看到之前删除该子字符串。
我的代码依赖于许多CodeIgniter库,包括数据库(活动记录模式),电子邮件,表单验证,分页和会话。
另一个PHP框架是什么: