sql - 正则表达式只允许选择和禁止其他操作,即插入删除刷新
问题描述
我需要让用户输入完整的 sql 命令作为字符串,然后在我的数据库上执行它(不安全,但仅供内部使用)。问题是不允许对数据库进行任何插入(插入、删除、刷新等) - 我没有使用 sql 经验,我不知道我应该捕获什么作为不受支持的操作
第二件事是阻止一些表,即用户(这可以在用户权限下完成,但我无法更改)
我想屏蔽一些关键字和字符,但我不知道女巫一。
我的实际正则表达式如下所示:
(?i)^select(?:(?!insert|drop|flush|database).)*$
解决方案
推荐阅读
- nginx - 确认 nginx 服务器块正在工作,但一个域仍指向默认 Web 根目录
- python - Python:在单行中解析具有多个嵌套字典的 JSON 字符串
- html -
为什么我在两个 contenteditable div 之间复制/粘贴后出现未知数? - error-handling - 运行子进程时出错
- kubernetes - Sumo Logic kubernetes 集成要求不存在 Prometheus
- hyperledger-fabric - 从 Fabric 链码中验证 Indy 凭证
- python - 使用 subplot 和 FuncAnimation 生成多行
- angular - 如何调用路由器导航方法而不是routerLink?
- sql - 如何授予 Oracle 中所有包和过程的仅查看权限?
- php - MySQL 查询找到行但不返回任何内容