首页 > 解决方案 > 正则表达式只允许选择和禁止其他操作,即插入删除刷新

问题描述

我需要让用户输入完整的 sql 命令作为字符串,然后在我的数据库上执行它(不安全,但仅供内部使用)。问题是不允许对数据库进行任何插入(插入、删除、刷新等) - 我没有使用 sql 经验,我不知道我应该捕获什么作为不受支持的操作

第二件事是阻止一些表,即用户(这可以在用户权限下完成,但我无法更改)

我想屏蔽一些关键字和字符,但我不知道女巫一。

我的实际正则表达式如下所示:

(?i)^select(?:(?!insert|drop|flush|database).)*$

标签: sqlregex

解决方案


推荐阅读