问题描述
最近给客户的学校做个asp.net的报名系统,客户是要求对社会上的学员开放注册并且要求上传证件。本来从安全方面考虑是想将原始证件图片传到buffer文件夹后,在服务器端重新保存成想要的格式和尺寸,然后再转成byte[]类型存在数据库里的,但是预估了一下数据库会很快过G,对性能和以后备份之类的负面影响还是挺大的,而且这样弄还是挺麻烦的。于是考虑另一个方案就是将图片保存在文件系统里,为了防止证照图片被别有用心的他人下载,将图片按尺寸规范重写后随机分配一个文件名,然后再数据库里保存这个文件名用于检索,并设置iis用户没有那个文件夹的List权限,这样他人无法得知其他图片的文件名就无法下载。但是又有担心,现在厉害的下载软件很多,会不会还有可能被某些下载工具获取目录下所有图片造成泄密呢。这种做法是否周全,还有什么需要设置的地方?
解决方案
解决方案二:
都设置了权限还担心什么,我觉得这样就行
解决方案三:
引用楼主wangfengyun的回复:
为了防止证照图片被别有用心的他人下载,将图片按尺寸规范重写后随机分配一个文件名,然后再数据库里保存这个文件名用于检索,并设置iis用户没有那个文件夹的List权限,这样他人无法得知其他图片的文件名就无法下载。但是又有担心,现在厉害的下载软件很多,会不会还有可能被某些下载工具获取目录下所有图片造成泄密呢。这种做法是否周全,还有什么需要设置的地方?
你这种纠结是因为不懂asp.net所以瞎折腾。asp.net程序里的数据应该放在app_data目录下(包括子目录下)。你试试看,能轻易下载吗?稍微懂点asp.net吧。别胡乱折腾什么“设置iis文件夹权限”之类的。
解决方案四:
在服务器存的时候图片的名称搞成guid,这样一般应该猜不出来图片的准确名称了。
解决方案五:
这样他人无法得知其他图片的文件名就无法下载->如果资源根本不可访问,输入url都看不到,谈何下载
时间: 2024-09-17 03:12:59