BreezeJS数据库连接安全性

BreezeJS Database Connection Security

本文关键字:安全性 数据库连接 BreezeJS      更新时间:2023-09-26

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);  
});

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

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

考虑到您可以使用mvc提供的机制来保护控制器(如Authorize属性),我认为使用微风没有任何风险。

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

检查TODO示例,执行调用/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调用,无论是否使用bread

如果您可以用一些用于净化/运行查询的ASP代码进行评论,我们可以提供更多关于此事的见解。

综上所述。没有问题。JavaScript本身不连接到数据库,因此它没有任何固有的安全问题。