[英]How to delete SQLite table IF EXISTS without calling execSQL?
來自與Douglas Crockford一起學習Java的背景下,他特別強調不使用eval,並且受教育的背景表明,使用像exec這樣的具有安全漏洞的通用掩蓋方法只是一種不好的形式,無論如何都可以刪除SQLite表格是否存在,而不必訴諸execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE)
嗎? 當前的方法文檔似乎建議execSQL是唯一的方法,因為唯一的刪除方法是:
刪除數據庫中行的便捷方法。
deleteDatabase用於數據庫,而不用於表。
要執行DROP TABLE IF EXISTS,請使用execSQL
。
這不是JavaScript, eval
可以從JavaScript內部執行JavaScript語句。 SQL是與Java不同的語言,因此構造SQL字符串是執行SQL的唯一方法。
除非攻擊者能夠控制DATABASE_TABLE
符號的內容,否則沒有安全漏洞。
如果execSQL
函數對您來說太通用,則創建一個dropTableIfExists
幫助程序函數,該函數為您設置字符串格式(並正確引用標識符 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.