有沒有什麼辦法可以阻止用戶對我的數據庫執行UNION操作?停止用戶對數據庫執行UNION操作
2
A
回答
5
你可以運行它之前建立用於查詢的EXPLAIN
並拒絕查詢,如果存在的UNION
在select_type
一提。
雖然這不會允許您運行任何DML
查詢,因爲EXPLAIN
不適用於它們。
不是我不明白爲什麼在地球上你需要這樣做。
+0
+1比我的回答好得多。 – awm 2011-04-21 16:10:24
+0
必須看看,但似乎可以做些事情:) – 2011-04-21 17:08:21
3
不,我會推薦這個,但是......
if (stripos($_POST['query'],'union') !== false) die("No dice, bro.")
這顯然沒有讓用戶把單詞「聯合」,在任何數據庫字段不做某事的不良副作用傻得像concat('un','ion')
。
0
我基本上會支持reggie。另外,您只能掃描單詞UNION的輸入字符串。請注意,這在任何情況下都存在安全風險。
相關問題
- 1. 停止setInterval直到操作未執行?
- 2. 對數據連接中的數據庫執行Linq操作
- 3. 在Azure數據庫上執行操作
- 4. Android更新 - 執行數據庫操作
- 5. 使用DataSet無緩存對數據庫執行操作
- 6. 停止用戶刪除數據庫
- 7. 停止對用於數據收集的變量的操作?
- 8. 停止應用程序服務器後運行Oracle數據庫操作
- 9. Java在用戶按下按鈕時停止執行循環操作
- 10. Jenkins節點 - 在Jenkins中執行停止操作後,腳本不會停止
- 11. SQL:讓SQL對數據庫中執行的一系列操作進行「計數」
- 12. 頁面代碼在UNION sql查詢後停止執行
- 13. 執行數據庫操作的WCF Web服務中的用戶同步
- 14. Python - 對熊貓數據框中的數據執行FIFO操作
- 15. 在WPF應用程序的後臺執行數據庫操作?
- 16. NodeJS - AOP爲數據庫異常執行通用操作
- 17. 如何使用Datomic數據庫執行原子操作?
- 18. ActionScript Worker可以用來執行數據庫操作嗎?
- 19. 在單個REST調用中執行多個數據庫操作
- 20. 防止多個用戶執行相同的操作
- 21. 當用戶中止連接時執行某些操作(Sinatra + Thin)
- 22. 停止Python程序,直到用戶執行一個動作
- 23. 如何使用DexieJS進行UNION操作?
- 24. 使用數據表對子集執行操作
- 25. RxJava的Android toMap操作員停止執行
- 26. 「停止操作來執行一些事件
- 27. 如何在執行if/else時停止其他操作?
- 28. iPhone:執行觸摸操作時NSTimer會暫時停止?
- 29. 如何停止在Swift中執行某個操作?
- 30. 登錄失敗,用戶「此操作需要對‘主’數據庫
不要讓用戶向數據庫提交任意的SQL語句。 – 2011-04-21 15:48:20
使用準備好的語句並閱讀sql注入... – knittl 2011-04-21 15:50:08
@clintp:現在我該怎麼做? 例如:我爲用戶提供了一個文本框,以便將他的查詢放入我的系統中執行。 – 2011-04-21 15:50:38