【问题标题】:Binding MVC model with knockoutjs mapping plugin expose all the data in view source使用 knockoutjs 映射插件绑定 MVC 模型会暴露视图源中的所有数据
【发布时间】:2015-02-11 17:54:02
【问题描述】:

在我们的项目中,我们使用了 knockoutJS Mapping 插件来映射 MVC 模型 使用以下

var data = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));

$(document).ready(function () {
 viewmodelCO = new ViewModelCO(data);
 ko.applyBindings(viewmodelCO, document.getElementById("divID"));
});

一切正常,但我的问题是数据安全,当我们使用@Html.Raw 是公开所有数据,如果有人右键单击页面,他们可以看到原始原始数据。

我们如何防止这种情况,我知道一种选择是重写代码并使用 Ajax 请求获取数据,但这就像页面加载后对服务器的另一次调用,这就是我们开始使用 MVC 的原因模型映射淘汰对象。有什么建议 ?

【问题讨论】:

    标签: javascript jquery asp.net-mvc knockout.js


    【解决方案1】:

    如果您希望网页处理数据,则必须将数据发送到客户端。这可以通过您当前的操作方式完成,或者正如您所提到的,通过第二个 AJAX 请求来完成。无论哪种方式,您都在将数据发送到客户端(通过 AJAX 执行此操作并不安全 - 看到通过网络传输的数据是微不足道的)。

    如果您担心数据,请确保您只发送执行任务所需的数据,而不是额外的。这可能意味着您必须稍微减少数据,但它会为您带来更多的安全性。

    【讨论】:

      猜你喜欢
      • 2013-01-19
      • 2012-06-16
      • 2012-03-27
      • 2013-07-02
      • 2012-06-22
      • 1970-01-01
      • 2012-03-07
      • 2015-02-18
      • 1970-01-01
      相关资源
      最近更新 更多