禁用 MySQL 的 UNION SELECT 查询

马丁·迪米特洛夫

是否可以UNION SELECT通过配置选项完全禁用查询?

除了清理入口参数之外,我想避免使用,UNION因为在它的帮助下很容易实现SQL injection表单:

SELECT * FROM users where username = '1' OR 1=1 
UNION 
SELECT * FROM users -- ' AND password='something'
比尔·卡文

简单回答你的问题:

不,MySQL 中没有选项可以选择性地禁用UNION.

SQL_MODE 可用于在一些非常特殊的情况下更改语法的含义,例如使用双引号和||运算符。https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html

但一般来说,您不能禁用 SQL 关键字或子句,除非您打开代码编辑器并修改 MySQL 的 SQL 解析器代码,然后构建一个自定义的 MySQL 实例。

我同意其他评论者的意见,即UNION如果您使用已知实践编写应用程序代码以避免 SQL 注入漏洞,则没有必要禁用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章