首頁 >資料庫 >mysql教程 >如何在 C# SqlCommand 中參數化列名稱?

如何在 C# SqlCommand 中參數化列名稱?

Patricia Arquette
Patricia Arquette原創
2024-12-23 08:27:23504瀏覽

How Can I Parameterize Column Names in a C# SqlCommand?

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn