安全必须认真对待
symf欧宝娱乐app下载地址ony框架都提供了工具开发者获得他们所需的应用程序。
我们的第一个提供一个框架专用sub-framework自动逃避模板变量和保护您的应用程序免受XSS(这种策略也被采用Django最近)。
新形式的框架,我们增加了一个自动抵御CSRF。演讲的形式框架,我们还添加了许多安全特性保护你免受所有的注射。
上周,我读了一个有趣的帖子作业质量漏洞在Rails中。“大规模分配模式”是一种轻松地更新对象基于从浏览器提交的值。这是一个简单的例子,基于推动:
$ user= UserPeer::retrieveByUsename(“法”);valuesFromForm美元=美元的请求- >getParameter(“用户”);$ user- >fromArray(valuesFromForm美元);
你能发现漏洞吗?问题在于这个短片段的最后一行代码。的fromArray ()
方法更新对象属性基于值作为参数传递。但是如果有人注入额外的is_admin
参数形式来获得管理员权限?推动本专栏将愉快地更新在数据库中,即使没有字段的表单,用户不允许改变它的值。我希望你现在理解问题!所以,我们需要一种方法来告诉推动用户不能更新is_admin
列。我们做什么?这属于模型层的信息吗?我不这么想。
和Rails文章出版后,很多人试图找到解决方案,但似乎没有一个人真正解决这个问题。一些解决方案是相当难看,但大多数人只做简单的例子。
为什么我认为Rails开发人员找不到一个明确的解决方案吗?因为Rails中的形式不是一流的对象。所以,最好的解决方案是基于一些配置你需要模型或在你的控制器。但是,正如形式不是一流的对象在Rails中,他们需要采用白名单或黑名单策略。这意味着开发人员需要的字段列表,可以从一种形式更新,或列表的字段受到保护。但是你不能在模型中配置这个列表,因为你可以有不同的形式和不同的安全配置基于相同的模型。在我们的前一个例子中,管理员可以更新is_admin
场,而用户无法。如果你不能保护你的领域模型中,如何做的控制器。简单的例子,它工作得非常好,但很丑,乏味的如果你有深嵌套形式。
形式在symfon欧宝娱乐app下载地址y是一流的对象。所以,s欧宝娱乐app下载地址ymfony知道你在表单字段。默认情况下,symfon欧宝娱乐app下载地址y会抛出一个错误如果你试图注入一个字段,或者它也可以过滤所有额外的字段。这是可能由于两个sfForm
选项:allow_extra_fields
和filter_extra_fields
。你可以阅读更多关于这些选项欧宝娱乐app下载地址symfony形式的书。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
保持良好的工作科幻团队:)
很多个不眠的夜晚,我把我的旧程序1.1和1.0的新形式,我不后悔。
一些初始的工作和了解,必须要做的事,但结果只是一组超级维护表单类。
谢谢! ! !
但是我担心XSS漏洞的错误消息。
例如在一个配置方法:
有一个愉快的周末,好好休息。
我做了一个插件,也许它能激发你在核心框架构建它。
http://trac.assembla.com/pablodip/browser/plugins/pdCSRFPlugin/trunk
当然,保护管理发电机,目前没有保护。