主题:谁来帮我解释下这个常见语句,关于replace函数
初拥创始者
[专家分:540] 发布于 2007-01-17 22:00:00
经常在网上的登陆代码里面看到这样一句:
username=replace(trim(request("username")),"'","")
按找replace函数的作用来看,是想把客户输入的用户名里面的'换成空字符串?是不是这个意思呢?如果是那为什么要这样做?
最后更新于:2007-01-17 22:05:00
回复列表 (共5个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-01-17 22:16:00
过滤非法参数,防攻击
板凳
初拥创始者 [专家分:540] 发布于 2007-01-17 22:33:00
原来是这样啊,听起来好象跟高深。。。。能不能举个例子?
3 楼
臭石头雪球 [专家分:23030] 发布于 2007-01-17 23:19:00
比如说用户的用户名里面带有'
那么,就又可能破坏SQL语句,使之有机会直接实用SQL语句达到某些目的。
比如:
Select Money From User Where ID='...'
当...是 Stone';Update...
的时候,这个语句变成
Select Money From User Where ID='Stone';Update...'
知道多严重了吗?一个SQL语句变成了两个,第二个语句由用户自己写,他可以随意地Update自己的资料,包括Money等敏感字段。
4 楼
初拥创始者 [专家分:540] 发布于 2007-01-18 14:53:00
大力感谢3楼的详细解释!懂了!!!!
5 楼
longlong16 [专家分:10670] 发布于 2007-01-19 13:15:00
[quote]比如说用户的用户名里面带有'
那么,就又可能破坏SQL语句,使之有机会直接实用SQL语句达到某些目的。
比如:
Select Money From User Where ID='...'
当...是 Stone';Update...
的时候,这个语句变成
Select Money From User Where ID='Stone';Update...'
知道多严重了吗?一个SQL语句变成了两个,第二个语句由用户自己写,他可以随意地Update自己的资料,包括Money等敏感字段。
[/quote]
常用的注入攻击法,呵呵!
如果可以的话最后把一些sql语句都写成存储过程来,那样安全性大大提高!
~~
我来回复