2009-06-08 112 views
1

我們已經使用nhibernate將近一年了。 我想知道是否有任何漏洞可以使用Web應用程序注入(如SQL注入等)。 我只是想通過網絡應用程序來保護任何nhibernate注入,如果有的話。nHibernate漏洞

回答

2

我認爲合適的OR/M管理器的要求之一是確保所有可以使用OR/M管理器執行的查詢都適當地防止SQL注入。

NHibernate爲SQL Server生成參數化查詢,因此這是安全的。

Offcourse,我不知道其他供應商(對於其他DBMS'es)產生...

+0

我相信NH通過ADO.NET的工具爲所有數據庫提供者生成參數化查詢。當然這對於許多攻擊媒介來說只是一個防禦措施,所以NH生成參數化查詢的事實並非是不檢查輸入的藉口。 – 2009-06-08 16:14:29

1

正如弗雷德裏克說,查詢是參數化的,所以你有大約SQL注入攻擊的相同風險的你在SQL Server中使用存儲過程。這意味着你可以避免直接的SQL注入,但是既不能防止潛在的SQL注入。有關潛在的SQL注入的詳細信息,請傑夫·阿特伍德博客張貼在這裏的評論:http://www.codinghorror.com/blog/archives/000275.html

與NHibernate最大的安全問題是,你必須揭露一個SQL帳戶,您的應用程序,可以選擇/插入/更新/並刪除(如果不是軟刪除)在你的數據庫表上。通過存儲過程,您可以公開只有權執行存儲過程的帳戶。這對許多地方來說都不是問題,但是有些地方可能會有嚴格的政策禁止直接訪問表格。