【问题标题】:I want to migrate off CodeIgniter for security reasons [closed]出于安全原因,我想迁移出 CodeIgniter [关闭]
【发布时间】:2013-06-27 00:21:38
【问题描述】:

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

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

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

什么是另一个 PHP 框架:

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

?

【问题讨论】:

  • 你为什么不做我所做的并扩展有问题的 CI 类,以便他们做你所做的?我不喜欢他们使用的整个黑名单 XSS 方法,所以我用我自己的 MY_Security.php 类扩展了核心安全类,并创建了一个白名单环境。对所有类都可以这样做,这样做相当简单,然后可以拖放到任何应用程序文件夹中以覆盖默认方法。
  • 在我看来,这需要重写大部分 CI 库,如果我要这样做,那么我还不如只使用不同的框架。

标签: php codeigniter frameworks xss


【解决方案1】:

那里有大量的 MVC 框架。我个人使用Symfony自己。它是一个您可以随意扩展的框架,而无需无用的库。其他要考虑的是LithiumLaravel

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

【讨论】:

    【解决方案2】:

    您可以查看CakePHP,它基于 Rails 原则,应该足够快,足以轻松重写您的应用程序。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-12
      • 2013-06-30
      • 2016-02-07
      • 2019-11-27
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多