Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
良好的Php框架,具有强大的安全性_Php_Security_Codeigniter_Web Applications_Frameworks - Fatal编程技术网

良好的Php框架,具有强大的安全性

良好的Php框架,具有强大的安全性,php,security,codeigniter,web-applications,frameworks,Php,Security,Codeigniter,Web Applications,Frameworks,我正在尝试选择一个能够为web应用程序提供真正良好安全性的框架,尽可能多地保护OWASP Top-10,例如: Sql注入 XSS CSRF 认证 授权书 等等 问题是,我已经做了大量的研究: Cakephp、Zend、Yii、CodeIgniter、Kohana和一些具有基本身份验证,可能有一点授权,但对于任何需要可靠代码安全性的应用程序都没有 上述大多数漏洞类型目前是否仅通过在这些框架中编写自定义代码来保护 这是我第一次使用框架,到目前为止,一切都是定制的php web应用程序。我对ph

我正在尝试选择一个能够为web应用程序提供真正良好安全性的框架,尽可能多地保护OWASP Top-10,例如:

  • Sql注入
  • XSS
  • CSRF
  • 认证
  • 授权书
  • 等等
问题是,我已经做了大量的研究: Cakephp、Zend、Yii、CodeIgniter、Kohana和一些具有基本身份验证,可能有一点授权,但对于任何需要可靠代码安全性的应用程序都没有

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


这是我第一次使用框架,到目前为止,一切都是定制的php web应用程序。我对php框架的全部想法是,它将很容易防止这些漏洞,因为它不是本机的,为什么要使用它呢?或者有没有一个框架,我没有看到哪一个比上面列出的更好,以实现强大的web应用程序安全性?谢谢

您提到的关键漏洞发生在不同的层,有时是多个层,并且通常取决于您所做的事情的上下文,因此很多漏洞都提供了防范这些漏洞的设施,但您必须加以利用

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


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

我还想说试试CodeIgniter

  • Sql注入-如果您在CodeIgniter中使用活动记录模式,那么您是安全的
  • XSS-它是config.php中的一个配置值
  • CSRF-也是config.php中的配置值
  • 登录等-有类似的库
此外,如果您是第一次使用框架,那么CodeIgniter很容易使用,并且有一个非常容易理解的优秀用户指南


编辑:由于2019年我仍在这里获得投票权,请检查安全性不能应用于某些单板之类的应用程序。每种类型的安全问题都以其他方式处理,大多数PHP框架都提供了编写安全代码的工具:

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

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

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


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

归根结底,保护应用程序的安全取决于您自己。实际上并没有自动安全这回事。Codeigniter内置了注入、XSS和CSRF。身份验证和授权是特定于应用程序的,所以编写一个库来覆盖它们几乎是毫无意义的,不是吗?我知道这不是自动的,但有一个框架可以支持……我想你可能对框架要求太多了。所有这些都有工具,可以更容易地防止这些事情。Sql注入保护是它们提供的数据库抽象层所固有的。XSS和CSRF通过使用它们提供的表单和请求对象得到更好的保护。身份验证和授权往往有意地宽泛,因为它们通常非常特定于应用程序。@RickCalder不,它不会。得了吧,已经很多年了,Codeigniter的人还在重复那个谎言?尝试任何其他框架,您将看到如何进行开箱即用的身份验证和授权。这里的评论非常好,值得思考!谢谢如果我早点看到你的答案,我会给它检查:)我想我会和codeigniter一起玩:)