阻止用户在Database上执行UNION操作

时间:2011-04-21 15:46:21

标签: mysql phpmyadmin

有什么方法可以阻止用户在我的数据库上执行UNION操作?

3 个答案:

答案 0 :(得分:5)

您可以在运行之前为查询构建EXPLAIN,如果在UNION中提及select_type,则拒绝查询。

这不允许您运行任何DML个查询,因为EXPLAIN对它们不起作用。

并不是说我知道为什么你需要在地球上做到这一点。

答案 1 :(得分:3)

不是我推荐这个,而是......

if (stripos($_POST['query'],'union') !== false) die("No dice, bro.")

这显然会产生不必要的副作用,即不允许用户在任何数据库字段中输入单词“union”而不做像concat('un','ion')那样愚蠢的事情。

答案 2 :(得分:0)

我基本上会支持reggie。另外,您只能扫描UNION一词的输入字符串。请注意,这无论如何都存在安全风险。