Entity Framework關於SQL注入安全問題


1、EF生成的sql語句,用 parameter 進行傳值,所以不會有sql注入問題
2、EF下有涉及外部輸入參數傳值的,禁止使用EF直接執行sql命令方式,使用實體 SQL

 

參考:

https://msdn.microsoft.com/zh-cn/library/cc716760(v=vs.110).aspx

 

防范 SQL 注入式攻擊。

應用程序經常接受外部輸入(來自用戶或其他外部代理),並根據該輸入執行操作。 任何直接或間接從用戶或外部代理派生的輸入都可能包含使用目標語言的語法來執行未授權操作的內容。 如果目標語言為結構化查詢語言 (SQL)(如 Transact-SQL),則此行為被稱為 SQL 注入式攻擊。 惡意用戶可直接向查詢中注入命令並刪除數據庫表、引起拒絕服務或者更改所執行操作的性質。

  • Entity SQL 注入式攻擊:

    SQL 注入式攻擊在 Entity SQL 中的實施方法是向查詢謂詞和參數名稱中使用的值提供惡意輸入。 若要避免 SQL 注入風險,切勿組合用戶輸入與 Entity SQL 命令文本。

    Entity SQL 查詢可在任何接受文本的位置接受參數。 應使用參數化查詢,而不是將來自外部代理的文本直接注入查詢。還應考慮使用查詢生成器方法安全地構造 實體 SQL

  • LINQ to Entities 注入式攻擊:

    盡管在 LINQ to Entities 中可以撰寫查詢,但是要通過對象模型 API 執行。與 Entity SQL 查詢不同,LINQ to Entities 查詢不使用字符串操作或串聯來撰寫,所以不易受到傳統的 SQL 注入式攻擊的影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM