BreezeJS数据库连接安全性
BreezeJS Database Connection Security
在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本身不连接到数据库,因此它没有任何固有的安全问题。
相关文章:
- 如何检查monodb数据库连接
- 使用 node.js 设置 Microsoft Access 数据库连接
- 从另一个选择框并使用数据库连接填充选择框
- HTML网站中的数据库连接方式,应该在chrome和Firefox中支持
- Nodejs 实现数据库连接 (mysql) 的最佳方式
- 英特尔 XDK 将 mySQL 数据库连接到应用程序
- 使用节点单元编写带有数据库连接/驱动程序的单元测试
- 将标题标签与数据库连接并使其自动刷新,就像在Facebook标题中一样
- 如何为每个 Web 套接字仅使用一个数据库连接
- 在 AngularJS 中使用数据库 - 我应该在哪里编写数据库连接代码
- 如何在节点.js中关闭数据库连接
- 使用 JScript 在 global.asa 中创建数据库连接
- 如何捕获数据库连接状态或 ping 连接
- 如何在 Javascript 中编写数据库连接
- Ajax 调用返回“找不到类”错误,即使已定义数据库连接也是如此
- 导出 MONGO 数据库连接到模型.js文件
- 打开和关闭 IndexedDB 数据库连接的频率
- 最佳数据库连接数(node-mysql)
- 数据库连接在ajax调用中不起作用-laravel
- BreezeJS数据库连接安全性