2013-02-13 61 views
0

正在與數據庫交互BreezeJS安全嗎?例如,如果我使用下面的代碼,它直接在javascript中清楚地顯示數據庫名稱,表和查詢本身。它是否與數據庫建立安全連接?BreezeJS數據庫連接安全

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

檢查文檔,感覺就好像你正在尋找'var query = breeze.EntityQuery.from(「Employees」);'和'var manager = breeze.EntityManager('api/northwind');' – Khez 2013-02-13 06:52:33

+0

所以!它安全嗎? – 2013-02-13 06:58:22

+0

讓我們非常清楚:查詢中的「員工」是**資源名稱**,而不是數據庫表名稱。該資源的數據來自名稱也是「Employees」的數據庫表的事實純粹是巧合。該資源可能被稱爲「Foos」。當然,實體,表格和服務名稱是相同的。但這是開發者的選擇。控制器名稱與數據庫名稱相匹配。 – Ward 2013-02-14 06:16:42

回答

2

最終breeze.js的安全性落在了用於實際運行查詢的編程語言上。正如我在文檔中看到的,它主要用於ASP。

{ 
    "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 
    } 
} 

存在標識唯一敏感的事情:

檢查TODO sample,做一個行動的有效載荷調用/api/todos/SaveChanges。即使你不使用JavaScript,你仍然需要以某種方式公開某些數據。我並不是說這是做這件事的最好方式,但這並沒有我能想到的任何直接的缺點。至少不在JS組件中。

它代表應用程序(就像在任何情況下)清理任何來自用戶的輸入。這包括任何AJAX呼叫,無論是否使用微風

如果您可以對某些用於清理/運行查詢的ASP代碼發表評論,我們可以提供更多關於此問題的信息。

綜上所述。沒有問題。 JavaScript本身不會連接到數據庫,因此它沒有任何固有的安全問題。

4

該行「var manager = new breeze.EntityManager('api/northwind');」沒有說數據庫的任何內容。這是通往MVC控制器的路線(在這種情況下是webapi)。

而行「var query = new breeze.EntityQuery()。from(」Employees「);」與數據庫沒有任何關係,它是您控制器中的一個方法的名稱。

考慮到你可以使用mvc提供的機制來控制控制器(比如Authorize屬性),我沒有看到使用breeze的風險。

+0

賓果。阻止未經授權訪問客戶的地方是使用安全控制器方法的服務器上。 我發現沃德在這裏的答案有幫助: http://stackoverflow.com/questions/13662496/how-is-breeze-js-handling-security-and-avoiding-exposing-business-logic?rq=1 – John 2013-02-13 18:21:18