【发布时间】:2012-07-12 09:02:37
【问题描述】:
例如: 服务器端是 Asp.net MVC, 客户端是 KnockoutJS。
从安全和标准的角度来看: 服务器输出编辑链接和客户端代码然后根据javascript viewmodel属性(例如“HasEditPermission”)设置控件的可见性是否可以接受?
或者 MVC Razor 语法是否应该根据视图模型选择性地输出控件?
传统上这一切都在服务器端完成,但是现在大多数数据绑定都发生在客户端上,它通过在 Razor 和 KnockoutJS 中使用条件逻辑来混合关注点。
不言而喻,服务器会根据权限验证所有回发,因此不可能提升权限。公平地说,“默默无闻不是安全”的概念在这里确实发挥了作用。仅仅因为编辑链接不存在并不意味着攻击者不明显地尝试您的网站/用户/编辑/1
【问题讨论】:
-
您向攻击者公开的信息越多,他们成功的可能性就越高。
标签: javascript asp.net-mvc-3 security knockout.js viewmodel