真是寒啊~
如果不是 Babyken 的提醒,这个错误我想我还会一直犯下去。
事情起因,帮 Babyken 做了一个 0day 查询的脚本,脚本很简单,就是简单的取用户输入的值做 LIKE 操作查询数据库。做好后经测试一直运行很好。可是今天 Babyken 告诉我说有个BUG,输入 "___" 或 ".__" 等类似的关键字时,会把数据库中的所有记录都取出来。
偶又试了以前写过的几个应用,寒,都有这个问题。。。
看起来是SQL本身对LIKE的处理问题。问了几个朋友也都没有注意过。后来在Mysql手册上找到答案:
Pattern matching using SQL simple regular expression comparison. Returns 1 (TRUE) or 0 (FALSE). With LIKE you can use the following two wildcard characters in the pattern:
Char Description
% Matches any number of characters, even zero characters
_ Matches exactly one character
当时感觉就是汗啊~~ 以前怎么自己就没有注意过呢?
解决办法是把用户的输入中的 _ 和 % 转义。
不知道是只是Mysql有这个问题,还是其它数据也有。希望熟悉其它数据库应用的朋友试一下。
相关Mysql说明页面:http://www.mysql.com/doc/en/String_comparison_functions.html
2004年1月16日22时25分补记:
与xdanger探讨后发现,目前网上大部分的PHP+Mysql程序都存在此BUG,IPB和PHPBB也不例外,VBB中被过滤掉了。看起来这应该是一个值得引起重视的问题了。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
·JSP连接Mysql数据库 (1337次浏览)
·安装和卸载MySQL的Windows系统服务 (1) (1227次浏览)
·SQL注入实战---利用“dbo”获得SQL管理权限 (1226次浏览)
·SQL注入漏洞全接触--进阶篇(二) (1194次浏览)
·触发器概述 (456次浏览)
·在Linux异构网络中备份MYSQL数据库(图) (330次浏览)
·送给新手---MySQL使用的前奏 (77次浏览)
·常用MySQL的命令集锦 (40次浏览)
·Ubuntu 7.04系统上安装Apache PHP MySQL (35次浏览)
·轻松接触MySQL数据库支持的3个引擎 (26次浏览)
·安装和卸载MySQL的Windows系统服务 (1) (1227次浏览)
·SQL注入实战---利用“dbo”获得SQL管理权限 (1226次浏览)
·SQL注入漏洞全接触--进阶篇(二) (1194次浏览)
·触发器概述 (456次浏览)
·在Linux异构网络中备份MYSQL数据库(图) (330次浏览)
·送给新手---MySQL使用的前奏 (77次浏览)
·常用MySQL的命令集锦 (40次浏览)
·Ubuntu 7.04系统上安装Apache PHP MySQL (35次浏览)
·轻松接触MySQL数据库支持的3个引擎 (26次浏览)
·2007开源数据库MySQL:将展翅高飞 10-31
·mysql导入数据相关的一些东西 10-31
·轻松掌握在 Mac OS X中安装MySQL 10-25
·建立MySQL的SSL连接通道 10-17
·帮助你如何迅速优化你MySQL数据库性能 10-09
·无法远程登入MySQL数据库的几种解决办法 10-09
·带你完全认识MySQL数据库中Show命令用法 10-09
·安装MySQL5.0后出现1607异常的解决办法 10-09
·快速掌握 Mysql数据库对文件操作的封装 10-09
·MySQL 5.0.16乱码问题的解决方法 10-09
·mysql导入数据相关的一些东西 10-31
·轻松掌握在 Mac OS X中安装MySQL 10-25
·建立MySQL的SSL连接通道 10-17
·帮助你如何迅速优化你MySQL数据库性能 10-09
·无法远程登入MySQL数据库的几种解决办法 10-09
·带你完全认识MySQL数据库中Show命令用法 10-09
·安装MySQL5.0后出现1607异常的解决办法 10-09
·快速掌握 Mysql数据库对文件操作的封装 10-09
·MySQL 5.0.16乱码问题的解决方法 10-09
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容



