12

我正在尝试选择一个框架,它可以提供非常好的 Web 应用程序安全性,尽可能多地防止 OWASP Top-10,例如:

  • Sql 注入
  • 跨站脚本
  • CSRF
  • 验证
  • 授权
  • 等等

问题是我已经尝试过大量研究:Cakephp、Zend、Yii、Code Igniter、Kohana 和一些具有基本身份验证,也许有点授权,但对于任何需要可靠代码安全性的应用程序都没有。

上述大多数漏洞类型目前是否仅通过在这些框架中编写自定义代码来保护?

这是我第一次使用框架的经验,到目前为止,一切都是自定义的 php web 应用程序。我对 php-frameworks 的整体想法是很容易防止这些漏洞,因为它不是本机的,为什么要使用一个?或者是否有一个我没有考虑的框架比上面列出的更强的网络应用程序安全性更好?谢谢

4

3 回答 3

12

安全性不能应用于像某些单板这样的应用程序。每种安全问题都以其他方式处理,大多数 PHP 框架都提供了编写安全代码的工具:

  • 对抗 HTML 注入/XSS 需要使用默认转义值的模板引擎(如 Twig)或组件驱动的方法来显示 HTML。如果您允许人们上传他们的文件并让他们从您自己的域中提供服务(您必须为此使用单独的域),那么没有任何框架可以帮助您;

  • 您可以通过使用转义查询参数的数据库助手来避免 SQL 注入;您提到的每个框架都提供了这些(当然您可以使用普通 PDO);

  • 您可以使用会话绑定令牌来对抗 CSRF。每个框架都提供了一些解决方案。然而,在每种情况下,您都必须以某种方式协助框架(通过向每个表单添加标记或使用框架提供的表单抽象)。

所以在某种程度上——是的,你必须考虑安全性。我不认为任何 PHP 框架可以做更多他们已经做的事情,除非有一个重大的范式转变,让我们通过在屏幕上拖动彩色框来设计应用程序,而不是接触像 HTML 或 SQL 这样的肮脏、不安全的东西。您希望得到什么样的支持?

于 2012-10-25T17:46:12.263 回答
9

我还要说试试 CodeIgniter。

如果您是第一次使用框架,CodeIgniter 也很容易使用,并且有一个非常容易理解的优秀用户指南。

编辑:由于我在 2019 年仍然在这里获得支持,请查看https://laravel.com/

于 2012-10-25T17:37:56.203 回答
1

您提到的关键漏洞发生在不同的层,有时甚至是多个层,并且通常取决于您正在执行的操作的上下文,因此其中很多漏洞将提供防止这些东西的设施,但您必须利用它。

例如,Symfony(1.x 和 2)和 Zend Framework 都有一个表单组件/子框架,可以开箱即用地实现 CSRF。但这并不意味着默认情况下它是打开的(symfony 是......不记得 zf 是否是)。当我们谈论视图层中的输出转义端时,与 XSS 相同。

现在,当谈到大型应用程序的框架偏好时,我个人喜欢 Symfony 1.x 和 Symfony2,Zend Framework 1.x(我不打算提及 zf2,因为我还没有玩过它)。对于简单的事情,我喜欢 Silex(基于 Symfony 组件)。

于 2012-10-25T17:34:42.020 回答