有沒有什麼辦法可以阻止用戶對我的數據庫執行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. Android更新 - 執行數據庫操作
- 3. 在Azure數據庫上執行操作
- 4. Java在用戶按下按鈕時停止執行循環操作
- 5. 頁面代碼在UNION sql查詢後停止執行
- 6. 執行數據庫操作的WCF Web服務中的用戶同步
- 7. Python - 對熊貓數據框中的數據執行FIFO操作
- 8. 在單個REST調用中執行多個數據庫操作
- 9. NodeJS - AOP爲數據庫異常執行通用操作
- 10. 防止多個用戶執行相同的操作
- 11. 停止Python程序,直到用戶執行一個動作
- 12. 如何使用DexieJS進行UNION操作?
- 13. RxJava的Android toMap操作員停止執行
- 14. 如何停止在Swift中執行某個操作?
- 15. 使用數據表對子集執行操作
- 16. 登錄失敗,用戶「此操作需要對‘主’數據庫
- 17. 對$ .post()執行JavaScript操作()
- 18. Laravel 5.2 +授權用戶執行操作
- 19. 用戶沒有執行此操作的
- 20. 查找用戶執行的Gcloud操作
- 21. 通過API執行用戶操作
- 22. Elgg - 爲訪客用戶執行操作
- 23. MongoError:不允許用戶執行操作
- 24. 停止javascript執行
- 25. 停止執行JavaScript
- 26. JQuery - 對同一個對象執行操作以防止覆蓋
- 27. 停止啓動數據庫
- 28. 加入數據框並執行操作
- 29. 篩選數據後執行操作
- 30. 如何根據數字執行操作
不要讓用戶向數據庫提交任意的SQL語句。 – 2011-04-21 15:48:20
使用準備好的語句並閱讀sql注入... – knittl 2011-04-21 15:50:08
@clintp:現在我該怎麼做? 例如:我爲用戶提供了一個文本框,以便將他的查詢放入我的系統中執行。 – 2011-04-21 15:50:38