向高手请教:两个MySQL字符过滤的问题

blacker 2007-11-29 09:15:47
1、Phpwind中有一个db_cv的函数,里面代码如下

function db_cv($array){
if(is_array($array)){
foreach($array as $key=>$value){
$array[$key]=str_replace(array("\\","'"),array("\\\\","\'"),$value);
}
}
return $array;
}


很多情况下,是这样用的:
while($rt=db_cv($db->fetch_array($query))){


看了一下,这个函数不仅做了单引号的替换,还做了一个把双斜线替换成4斜线的替换,模糊记得好像说是啥安全问题,但具体记不住了。想请教一下,这样具体有啥用处?

2、addslash()在Update语句中是不是要用啊?

在Insert语句中用addslash()功能很正常,但是在update语句中使用,好像就出问题了,斜线都被存入到了数据库中。请问在UPDATE中是否不需要用addslash()?如果不用是否会出安全问题?



...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hekeyphp 2007-12-26
  • 打赏
  • 举报
回复
是2个贴换成4个,\\这个相当与一个\这个吧,进行了转意的,不知道到对不对
Meteorlet 2007-12-26
  • 打赏
  • 举报
回复
明明是一个\替换成两个\\,怎么都成了两个替换成四个呢?
fxs_2008 2007-12-25
  • 打赏
  • 举报
回复
$array[$key]=str_replace(array("\\","'"),array("\\\\","\'"),$value);
看了下手册,就是将
$value中的\\ 替换为\\\\
"'"替换为"\'"

相当于加上魔术引用!
PHP5以上是自动加的,但也可以做一个判断!判断是否开启,如没开启,就用addslash(或楼主的函数)!
blacker 2007-12-25
  • 打赏
  • 举报
回复
谢谢楼上各位
懒得去死 2007-11-29
  • 打赏
  • 举报
回复
举个例子给你吧 :


/*DDL Information For - test.a1*/
---------------------------------

Table Create Table
------ -----------------------------------------
a1 CREATE TABLE `a1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`str1` char(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8



insert into a1(str1) values
('http://www.csdn.net'),
('c:\lamp.txt'),
('c:\\lamp.txt'),
('c:\\\\lamp.txt');

select * from a1;


query result(4 records)
id str1
1 http://www.csdn.net
2 c:lamp.txt
3 c:\lamp.txt
4 c:\\lamp.txt

懒得去死 2007-11-29
  • 打赏
  • 举报
回复
你要清楚的知道:
在MYSQL中 ,如果 你不转义/的话,就会出现不可以预料的结果
fxs_2008 2007-11-29
  • 打赏
  • 举报
回复
第一个问题
$array[$key]=str_replace(array("\\","'"),array("\\\\","\'"),$value);
第一次遇到,不知道
第二个问题:

所有入库前均可进行变量转换,但最好判断一下是否打开魔术引用!如果没有开启就用addslash
出库同理
dreambird1983 2007-11-29
  • 打赏
  • 举报
回复
2个变4个的那种不怎么理解...
总哈哈 2007-11-29
  • 打赏
  • 举报
回复
一般都不这么用。不知道你从哪里看的,如果服务器上面把magic_qu...(魔术。。忘了)开了,你根本都不用要这个,如果服务器上面没有开,你只需要把$_POST和$_GET过滤一下就可以了,你得看一些好的代码,例如: phpwind,
discuz

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧