我在使用正则表达式时遇到问题。
我正在尝试在查询字符串上使用 preg_match 。我希望它排除任何删除或截断序列,无论大小写(?i)在'或`之间并且在序列和两个符号之间有任意数量的字符,但我想捕捉这两个词中的任何一个不在两个标志之间。
如果您还没有猜到,我想检测输入是否正在尝试 DROP | 截断任何内容,但是如果不从非恶意输入中排除这些单词,就没有简单的方法可以做到这一点。
例如
我希望这不会触发:
SELECT * FROM `drop`
SELECT * FROM 'drop_truncate' -- drop drop
但这要触发:
DROP TABLE `users`
编辑:所以我的问题是关于正则表达式的,我收到了关于数据库安全的答案,毫无疑问,这个问题让你这么想,抱歉误导!不,我不关心我已经处理过的数据库安全性,我想要在这里检查是否有任何使用 drop 或 truncate 的 INTENT 并将其记录在某处。叹