[web安全] 上传漏洞之修复漏洞

上传漏洞最终的形成原因主要有以下两点:
1目录过滤不严,攻击者可能建立畸形目录。
2文件未重命名,攻击者可能利用Web容器解析漏洞。


安全的编码方案应该包含如下三个步骤:

1接收文件及其文件临时路径。
2获取扩展名与白名单做对比

3对文件进行重命名

这段代码如果上传目录是固定的,而不是通过参数来获得,将会更加安全。白名单已经将安全调整到很高的级别了,随后又对文件重命名,进一步降低了利用web容器解析漏洞的可能性。

“获取扩展名与白名单做对比”,攻击者只能考虑利用web容器的解析漏洞来绕过。之后“对文件进行重命名”,会破坏攻击者所构造的特殊文件名。
因此如果想突破这种后台代码,可能存在的攻击方法为PHP CGI解析漏洞。
如果进一步,对用户上传的文件做图片二次渲染处理,那么任何解析漏洞(包括PHP CGI)也会被防御,因为存在于图片中的代码将会被破坏。
二次渲染就是根据用户上传的图片,生成一个新的图片,然后删除用户上传的原始图片,将新图片存储到数据库中。

你可能感兴趣的:(web安全)