使用動態LINQ庫(link),是否容易受到注入? (如果是的話)如何防止這種情況發生?是否可以通過動態LINQ注入?
一些背景從Security Considerations (Entity Framework):
LINQ實體注入攻擊:
雖然查詢組合物在LINQ能夠實體,它是通過對象模型API執行 。與實體SQL查詢不同,LINQ to Entities查詢不是通過使用字符串操作 或級聯組成的,它們不易受傳統SQL注入攻擊的影響。
由於動態SQL是使用字符串組成的,這是否意味着它可能容易受到注入向量?或者,LINQ to SQL會根據動態LINQ庫中的基礎數據類型自動處理參數化值?
或者它是完全安全的,因爲動態查詢將在內存中執行,而不是針對SQL(從而否定SQL索引的好處)?
我一直在努力理解DynamicLibrary.cs
的代碼,但我相信我可以輕鬆地忽略某些東西。
由於這個問題是關於動態LINQ庫本身的,所以可以認爲這個問題同時適用於linq-to-sql
和linq-to-entities
(儘管上面引用了實體框架)。
好點。該框架無法保護您免受自己的傷害。 – 2012-01-26 17:33:04
因此,導致數據泄漏的注入仍然是可能的,但您仍然與「bobby tables」(丟失/更改數據/刪除數據)事件隔離;那就是可以導致select和where子句改變數據庫中的記錄嗎? – Seph 2012-01-26 19:05:09
@Seph - 不,不可能改變記錄,因爲linq查詢永遠不會轉換爲更新,插入或刪除SQL。唯一可能的攻擊可能是通過修改「where」過濾器來訪問未經授權的數據。 – Krizz 2012-01-26 19:12:12