有没有必要对$_FILES转义
魔术引号会对$_POST $_GET $_COOKIE
特殊字符进行转义
但是$_FILES 不会
有没有必要对$_FILES 进行手动转义呢?
转义之后 文件怎么处理?
若上传的一张图片 或者是一个RAR文件包
转义后的结果会是什么? 有以下几点可以关注
1. 文件上传表单的值对javascript是只读的,不可以修改;
2. 文件名中不能有\和", windows下可以有', 但上传后会被截掉
3. 文件上传到服务器后,是被保存为临时文件,且文件名被替换为安全的文件名
结论:没有什么东西值得转义
回复 2# roger 的帖子
是这个样子滴 相信这一条真理: 所有来自客户端的数据不予信任. 必须经过处理. 这叫纵深防备战略 [quote]原帖由 [i]ljxok2001[/i] 于 2008-11-19 14:29 发表 [url=http://www.phpchina.com/bbs/redirect.php?goto=findpost&pid=732654&ptid=91879][img]http://www.phpchina.com/bbs/images/common/back.gif[/img][/url]相信这一条真理: 所有来自客户端的数据不予信任. 必须经过处理. 这叫纵深防备战略 [/quote]
是滴,
但就文件上传来说,php已经防御过了(或者是服务器程序处理的?apache 或 iis, 没深究),没咱们啥事了 在Linux下就有这样的必要检测,Windows我觉得没有必要! 我张见识了 你也不知道什么时候又会整出一个 $_FILES 漏洞出来,
如果追求高度安全, 那么安全措施能做的就做. 文件名不能存在对数据库有威胁的单引号,斜杠。所以这个担心是不必要的 liexusong:你有没有测试过?
我认为文件名如果是存入数据库的话,才存在转不转义的问题。如果不存的话,那转干吗?
还有,就算会把单引号上传上来,构成sql语句出错,但也不至于被sql注入吧?
页:
[1]
