我正在开发一个小的CGI应用程序(用C语言编写,带有CGIC,http://www.boutell.com/cgic/)。我的应用程序需要创建一个临时文件(用户上传一个图像,它被保存,以各种方式修改,然后显示给用户)。
创建临时文件时应采取哪些预防措施?
修改后的镜像由CGI脚本动态提供,然后将临时文件从磁盘中删除:
类似这样的东西:<html><head><title>here's your modified image</title></head><body><img src="cgi-bin/genimage.cgi?uid=5423423 /></body>
然而,恶意用户可以上传图像,并且永远不会请求修改后的图像,因此会填满硬盘。
我应该定期删除不使用的文件吗?
非常感谢!
发布于 2012-05-02 15:00:31
如果您的存储空间是有限的,并且您有未知数量的数据进入,那么您将需要决定当有更多的数据可以存储时该怎么做。无论如何,这一点都会出现。如果你假装提供无限的存储空间,当你做不到的时候,就会有一个DoS。
任何策略都可能分为以下两种方式(如果可能的话,3种):
当超过高水位线时,
2和3仍然需要你以某种方式寻找新的存储空间,所以要么删除一些东西,要么你需要更多的存储空间。1是非常自我维护的,但是可以通过发送足够的新垃圾来清除其中所有有用的旧数据。建立一个排名系统(最后一次访问,最多访问,由特权用户加载,这些组合...)而删除最不重要的内容可能是最好的平衡。
发布于 2010-01-08 03:05:48
使用CGI进行直接的应用程序设计是有问题的--也就是说,不是web框架/应用程序引擎。我建议您使用Java进行图像处理,或者将其包装在lua或python中。
如果你继续使用C,一定要限制CGI的执行环境,把它关进监狱,看看this post获得一些灵感,here是另一个。
https://stackoverflow.com/questions/2022835
复制相似问题