回 帖 发 新 帖 刷新版面

主题:谁来帮我解释下这个常见语句,关于replace函数

经常在网上的登陆代码里面看到这样一句:
username=replace(trim(request("username")),"'","")
按找replace函数的作用来看,是想把客户输入的用户名里面的'换成空字符串?是不是这个意思呢?如果是那为什么要这样做?

回复列表 (共5个回复)

沙发

过滤非法参数,防攻击

板凳

原来是这样啊,听起来好象跟高深。。。。能不能举个例子?

3 楼

比如说用户的用户名里面带有'
那么,就又可能破坏SQL语句,使之有机会直接实用SQL语句达到某些目的。
比如:
Select Money From User Where ID='...'

当...是  Stone';Update...
的时候,这个语句变成
Select Money From User Where ID='Stone';Update...'
知道多严重了吗?一个SQL语句变成了两个,第二个语句由用户自己写,他可以随意地Update自己的资料,包括Money等敏感字段。

4 楼

大力感谢3楼的详细解释!懂了!!!!

5 楼

[quote]比如说用户的用户名里面带有'
那么,就又可能破坏SQL语句,使之有机会直接实用SQL语句达到某些目的。
比如:
Select Money From User Where ID='...'

当...是  Stone';Update...
的时候,这个语句变成
Select Money From User Where ID='Stone';Update...'
知道多严重了吗?一个SQL语句变成了两个,第二个语句由用户自己写,他可以随意地Update自己的资料,包括Money等敏感字段。
[/quote]
常用的注入攻击法,呵呵!
如果可以的话最后把一些sql语句都写成存储过程来,那样安全性大大提高!
~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册