首頁 >後端開發 >Python教學 >如何在 SQLite 中安全地建立動態表名?

如何在 SQLite 中安全地建立動態表名?

Barbara Streisand
Barbara Streisand原創
2024-11-15 00:30:02475瀏覽

How can I create a dynamic table name in SQLite securely?

SQLite 中的動態表建立

在 SQLite 中,不直接支援變數表名稱。不過,有一些技術可以在確保安全性的同時達到類似的效果。

避免建構子

由於存在 SQL 風險,不建議使用字串建構子建立表名註入攻擊。在建構表名稱之前,請考慮使用清理函數從變數中刪除特殊字元。

清理函數

下面提供了清理函數的範例:

def scrub(table_name):
    return ''.join(chr for chr in table_name if chr.isalnum())

此函數從表名稱中過濾掉非字母數字字元。

用法

要建立具有動態確定名稱的表,您可以使用以下方法:

table_name = scrub(self.name)
cursor.execute("CREATE TABLE StarFrame" + table_name + " (etc etc)")

這可以確保表名免受潛在註入攻擊。

以上是如何在 SQLite 中安全地建立動態表名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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