這可能是一個非常愚蠢的問題,但我想爲什麼不...SQL注入的潛力在這裏?
我使用實體框架RIA服務作爲後端。我在我的應用程序中有一些地方接受用戶輸入,並使用他們的數據直接詢問RIA Services(反過來EF和我的數據庫)問題。這些圖層中的任何一個都有助於防止安全問題,還是應該自己清理數據?
例如,每當一個新用戶註冊使用的應用程序,我把這個方法:
[Query]
public IEnumerable<EmailVerificationResult> VerifyUserWithEmailToken(string token)
{
using (UserService userService = new UserService())
{
// token came straight from the user, am I in trouble here passing it directly into
// my DomainService, should I verify the data here (or in UserService)?
User user = userService.GetUserByEmailVerificationToken(token);
...
}
}
(我是否應該是我自己的滾動用戶驗證系統的完全是另一個問題,我們在這個過程中我對sql注入和RIA服務更感興趣)
無論它們來自哪裏,您都應該清理數據庫查詢。執行SQL注入的方法非常有趣,程序員從來沒有想到過它。而清理輸入根本不是資源消耗。 – TheLQ 2010-06-10 15:15:21
當然,如果庫/框架已經在擦洗它們呢?否則你可能會得到不正確的(例如雙重轉義數據)數據。 – oedo 2010-06-10 15:20:10