【问题标题】:Good Php Framework for strong security [closed]具有强大安全性的良好 PHP 框架 [关闭]
【发布时间】:2012-10-15 22:54:15
【问题描述】:

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

  • Sql 注入
  • XSS
  • CSRF
  • 身份验证
  • 授权

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

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

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

【问题讨论】:

  • 归根结底,保护您的应用程序取决于您。没有真正意义上的自动安全。
  • Codeigniter 内置了 Injection、XSS、CSRF。身份验证和授权是特定于应用程序的,因此编写一个库来覆盖它们几乎没有意义,不是吗?
  • 我知道它不是自动的,但是有一个框架可以支持...
  • 我认为您可能对框架提出了太多要求。所有这些都有工具,可以更容易地防范这些事情。 Sql 注入保护是它们提供的数据库抽象层所固有的。 XSS 和 CSRF 通过使用它们提供的表单和请求对象得到更好的保护。身份验证和授权往往被有意保留宽泛,因为它们通常非常特定于应用程序。
  • @RickCalder 不,不会。拜托,已经很多年了,Codeigniter 的家伙还在重复那个谎言?尝试任何其他框架,您将了解如何开箱即用地进行身份验证和授权。

标签: php security codeigniter web-applications frameworks


【解决方案1】:

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

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

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

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

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

【讨论】:

  • fdreger 的精彩评论和深思熟虑!谢谢!
【解决方案2】:

我也会说试试 CodeIgniter。

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

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

【讨论】:

  • 如果我早点看到你的答案,我会检查的 :) 我想我会使用 codeigniter :)
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多