BreezeJS数据库连接安全性

时间:2013-02-13 06:46:47

标签: javascript breeze

BreezeJS 安全吗?

中与数据库进行交互

例如,如果我使用以下代码,它会直接在javascript中清楚地显示数据库名称,表和查询本身。它是否与数据库建立了安全连接?

var manager = new breeze.EntityManager('api/northwind');

var query = new breeze.EntityQuery()
    .from("Employees");

manager.executeQuery(query).then(function(data){
    ko.applyBindings(data);
}).fail(function(e) {
    alert(e);  
});

2 个答案:

答案 0 :(得分:4)

“var manager = new breeze.EntityManager('api / northwind');”没有说明数据库的任何内容。它是MVC控制器的路由(在本例中为webapi)。

行“var query = new breeze.EntityQuery()。from(”Employees“);”与数据库没有任何关系,它是你控制器中的methd的名称。

考虑到你可以使用mvc提供的机制来安装控制器(比如Authorize属性),我看不到任何使用breeze的风险。

答案 1 :(得分:2)

breeze.js的安全性最终落在用于实际运行查询的编程语言上。正如我在文档中看到的那样,它主要用于ASP。

检查TODO sample,执行操作调用/api/todos/SaveChanges,其有效负载为:

{
    "entities": [{
        "Id": 2908,
        "Description": "Wine",
        "CreatedAt": "2012-08-22T09:06:00.000Z",
        "IsDone": true,
        "IsArchived": false,
        "entityAspect": {
            "entityTypeName": "TodoItem:#Todo.Models",
            "entityState": "Modified",
            "originalValuesMap": {
                "IsDone": false
            },
            "autoGeneratedKey": {
                "propertyName": "Id",
                "autoGeneratedKeyType": "Identity"
            }
        }
    }],
    "saveOptions": {
        "allowConcurrentSaves": false
    }
}

唯一敏感的是 Id 。即使您不使用JavaScript,您仍然需要以某种方式公开某些数据。我不是说这是最好的方式,但这并没有我能想到的任何直接的缺点。至少不在JS组件中。

它代表应用程序(就像在任何情况下一样)来清理用户的任何输入。这包括任何AJAX调用,无论是否 breeze

如果您可以使用一些用于清理/运行查询的ASP代码进行评论,我们可以提供更多有关此问题的见解。

总结一下。没有问题。 JavaScript本身并不连接到数据库,因此它没有任何固有的安全问题。