動態SQL查詢:設定表名
在動態SQL查詢中,可以使用某些方法動態提供參數並設定表名。雖然您已成功設定了一個參數,但您現在需要指導如何動態設定表名。
動態設定表名
為防止SQL注入漏洞,建議盡量使用函數。在這種情況下,您可以結合多種技術來動態設定表名:
<code class="language-sql">SET @TableName = '<[db].><[schema].>tblEmployees' SET @TableID = OBJECT_ID(@TableName) --如果格式错误/注入,则无法解析。 SET @SQLQuery = 'SELECT * FROM ' + QUOTENAME(OBJECT_NAME(@TableID)) + ' WHERE EmployeeID = @EmpID'</code>
此腳本將表名初始化為參數,然後檢索底層物件 ID 以確保提供的名稱有效。如果提供的表名格式錯誤或已被注入為SQL漏洞,則物件 ID 將無法解析。
最後,對錶名進行引用以避免潛在的SQL注入攻擊,並透過新增提供的員工ID參數來完成動態SQL查詢。
以上是如何在動態SQL查詢中動態設定表名來防止SQL注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!