在开发一个下载功能的时候,遇到一个想起都后怕的问题,为了减少对数据库的压力,在导出数据的时候,程序将数据整理成EXCEL放在服务器上,然后由客户端提交文件名称,后台程序会去一个特定的文件夹取出文件,返回给客户端。
以上有一个漏洞,那就是在下载的时候,我们给服务器端传入文件名参数的时候,给他一个这个路径: ../web.config ,呵呵,明白了吧,程序会把配置文件吐给客户端。
反思:只要是有下载或上传的系统,都有一个漏洞,那就是自己写了一下下载程序,或恶意者传入了一个下载程序,这个时候,就可以通过这个访问下载程序去拿你服务器上的一些代码文件,进而查看你的程序,找到漏洞。
解决:path = Path.Combine(Server.MapPath(@"fileA"),path.Replace("..", ""));