是否有任何正则表达式可以检查字符串是否有效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/