首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当密码为\/‘时mysql查询出现问题

当密码为\/‘时mysql查询出现问题
EN

Stack Overflow用户
提问于 2010-02-02 17:28:17
回答 3查看 164关注 0票数 2

在mysql表名(user_login)中,我有login_name和password这样的字段。我输入的密码是abc,密码是/‘(像\/’这样的特殊符号) .And我的查询是

select password from user_login where password like '/'‘和I got SQL语法错误

EN

回答 3

Stack Overflow用户

发布于 2010-02-02 17:32:43

无论使用哪种语言实现调用,都应该使用参数化查询。当心SQL Injection attack

票数 6
EN

Stack Overflow用户

发布于 2010-02-02 17:33:14

您应该使用参数,而不是直接将变量放入查询中。我想是转义符号有问题。

查看此链接How to set query parameters in MySQL Query Browser?

票数 1
EN

Stack Overflow用户

发布于 2012-09-06 11:53:08

如果您曾经在登录系统中使用LIKE,那么您已经将所有的安全性抛在了窗外。在您的登录上尝试以下命令,以了解我的意思:

用户名:%

密码:%

为数据库中的第一个用户授予访问权限。(祈祷不是管理员用户)

如果用户名已知,则%作为密码将提供完全访问权限。

如果你想要一个不区分大小写的更友好的系统(是的,这减少了可能的密码数量-但可能适合用户名),那么强制大小写(或大写或ucword或任何你喜欢的)-但不要在任何涉及登录或未筛选用户输入(如搜索框)的查询中使用LIKE运算符。任何时候你必须使用LIKE操作符,确保去掉或手动转义% and _(,如果你使用的是MS SQL,那么也转义所有的REGEX操作符- []^$()*。)。

mysql的许多转义函数不会转义%_字符,当与LIKE一起使用时,它允许任何访问者执行通配符搜索(可能会严重影响服务器并导致DoS问题),更糟糕的是,使用%:%登录时会授予自己不应有的特权。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2182958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档