检查SQL输入是否有效SQL



是否有任何正则表达式可以检查字符串是否有效SQL?它必须兼容PHP。我的代码。

if(!preg_match("regular expression", $_POST['sql_input']){
    echo "Please enter valid SQL.";
    exit;
}

您可以尝试此库:http://code.google.com/p/php-sql-parser/。 我还没有使用过,所以我不能保证,但是代码看起来像 它将能够分辨有效和无效的SQL之间的区别。

另一个选项可能是如果您的SQL变体允许使用交易 它。交易将使您可以执行SQL然后取消 之后,它逆转了所造成的任何损害。我想我会 虽然更喜欢选项1。

我引用戈德温。来源

不,这是不可能的。但是,如果您想保护自己免受SQL注入攻击,则应使用其他机制。

参见例如:https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-indoction-in-php

简单答案。您要做的是不可能的。

您需要一个SQL解析器来检查语句是否有效。

在此处查看:http://www.dpriver.com/blog/list-of-demos-ullustrate-how-to-use-general-sql-parser/vendor-specificificoffiecificoffline-sql-syntax-syntax-check/

最新更新