ob娱乐下载Symfony 1.2.8 -回滚我们的安全补丁
二零零九年七月十三日·发表的费边兰格
从1.2.7恢复安全补丁
Fabien恢复了不可见的表单字段的修复变更集19819.下面是commit注释的推理:
这些更改是为了堵塞symfony管理生成器中的安全漏洞(更多信息请参阅[symfony blog](http://wwwob娱乐下载.symfony-project.org/blog/2009/04/27/symfony-1-2-6-security-fix))。但是很多人抱怨,因为它弊大于利。该修复禁用了自定义部分的可能性。此外,如果你不使用“echo $form”结构,如果你忘记在模板中显示一些非必需的字段,在正常的表单中也会存在这个问题。在与核心团队成员讨论之后,似乎没有办法为开发人员“修复”这个问题。我们认为我们能够提供一些东西,但现实是我们不能。有问题吗?我们认为这不是一个大问题,因为在这种情况下,可以被利用的情况非常罕见,甚至不存在,就像你是脆弱的一样,这也意味着你的数据库数据将以某种方式被破坏(阅读下一节了解更多信息)。事实上,所有的框架都是脆弱的,都有同样的问题。我们已经为表单框架提供了比其他框架更高级的安全特性,但不能再进一步了。 Security is also a developer matter, and too much magic is sometimes a bad thing. Here is the exact circumstances under which you might be vulnerable: A field is vulnerable only if you forget to display its widget in the template and only if it has a non-required validator. Then, an attacker could potentially inject a valid value for this field, and it will be saved with the rest of the object. But two things greatly mitigate the issue: first, if you forget to display a field, each time you save the form, its value will be lost. So, most of the time, you will be aware of the problem because the data in the database will be corrupted. Second, the attacker need to know the exact field name, which is not easy as no information is contained in the HTML.
我很抱歉这造成的任何不便,但我们认为恢复一些错误的解决方案是正确的,即使(或特别是)当它是一个安全修复。
1.2.8中还有什么
我们将Doctrine升级到1.0.10并修复了一些问题。我们也做了一些努力来确保PHP 5.3的兼容性,并改进了一些PHPdoc,这些主要是来自1 day1ticket.除此之外,很多小问题都得到了解决,所以我强烈建议查看更新日志.
如何安装
的引用,以升级现有项目1.2.8 subversion标签或者执行PEAR upgrade命令:
升级symfony/symfoob娱乐下载ny-1.2.8
如果您使用来自我们的SVN存储库的1.2分支,只需运行svn更新
命令升级项目。
最后但并非最不重要的是,不要忘记通过运行教条来清空缓存:
$ PHP ob娱乐下载symfony doctrine:build-model $ PHP symfony doctrine:build-forms $ PHP symfony doctrine:build-filters $ PHP symfony cache:clear
或者在使用propel时:
$ PHP ob娱乐下载symfony驱动:build-model $ PHP symfony驱动:build-forms $ PHP symfony驱动:build-filters $ PHP symfony缓存:clear
发表在#释放
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
在这种情况下,当您不取消设置表单中的字段,但在生成器的显示部分中没有该字段时。当保存表单时,Symob娱乐下载fony将删除该记录的所有现有m2m关系,至少对于Doctrine是这样。
是否可以只保留这种情况下的修复?
菲利普:你必须调整好你的姿势。“没有办法为开发者“修复”这个问题。”
应该是这样,但是因为5.3是新的,symfony没有被大多数社区针对它进行测试,所以ob娱乐下载仍然有可能存在bug。欧宝体育平台怎么样但至少没有专业。如果你想要进行生产,只能由你来决定。所以我建议你建立一个测试环境,测试你的应用程序
谢谢你的信息。
我将从一开始就使用PHP 5.3启动symfony的另一个项目。ob娱乐下载
让我们拭目以待吧!:)
都很脆弱,也有同样的问题。”
更正:CakePHP不容易受到这个问题的影响,以前也不容易(http://book.cakephp.org/view/257/Configuration)。不仅如此,允许安全系统出现异常实际上非常简单。
在对其他软件项目做出毫无根据的断言之前,请先做一些研究。
当提交表单时,Security组件将此散列与它使用POST数据和用户的CSRF令牌生成的散列进行比较。所有这些都是完全透明的处理,用户不必冗余地指定所包含的表单字段。
我前面指出的$disabledFields属性允许开发人员从后端哈希计算中忽略某些特定的字段模式。例如,允许设计人员使用原始HTML编写部分表单,或允许前端开发人员使用JavaScript生成额外的字段。这提供了良好的默认安全级别,同时以安全的方式允许额外的灵活性。
无论如何,希望这有助于澄清问题。我对Symfony的表单系统的内部工作原理不是很熟悉,但是由于您确实有类似的跟踪表单字段的概念,所以我认为ob娱乐下载这种设置对您来说也是可行的。不确定跨越渲染上下文边界(即元素/部分等)对你们的影响。我们通过维护FormHelper的相同对象实例来解决这个问题。
我在我的项目中使用sob娱乐下载ymfony 1.2.8,我没有找到任何用于Feeds和Captcha的插件,我尝试安装sfFeed2Plugin和sfCryptoCaptchaPlugin,但它告诉我iot不兼容