在 SqlCommand 中參數化列名
參數化查詢對於防止 SQL 注入攻擊和確保資料庫操作的安全至關重要。然而,C# SqlCommand 在參數化列名稱時提出了特殊的挑戰。原始問題中提供的語法會導致錯誤,因為 SqlCommand 本身不支援列名稱的參數化。
要解決此問題,建議在執行時動態建構查詢。這涉及將列名與查詢的其餘部分連接起來。雖然這看起來不方便,但對於降低安全風險至關重要:
// IMPORTANT: Ensure "slot" is validated against a whitelist to prevent injection attacks SqlCommand command = new SqlCommand("SELECT [" + slot + "] FROM Users WHERE name=@name; ") prikaz.Parameters.AddWithValue("name", name);
透過動態建立查詢,您可以有效地參數化列名稱。請記住透過將所有使用者輸入列入白名單或驗證所有使用者輸入來優先考慮安全性,以避免潛在的漏洞。
以上是如何在 C# SqlCommand 中參數化列名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!