我希望在文件上传时对其进行加密,通常会发生的事情是它被写入磁盘,然后你可以从那里加密,我想在此之前对其进行加密。 是否有任何模块可用于http服务器或允许我这样做的应用程序框架,我不想花费大量时间为此编写软件,但如果需要我必须这样做。
重要的是没有未加密的记录会触及硬盘。
硬盘驱动器已经使用aes进行加密,但由于第三方可以在不知情的情况下访问服务器,我希望如果有某种方法可以防止实际数据/ /容易受到攻击。
答案 0 :(得分:0)
系统管理员回答:ramdisk保留区域用于预加密数据。从不接触磁盘,问题解决了。否?
答案 1 :(得分:0)
以下是我收到但尚未测试的答案,在我完全测试它的作用之前,我不会将其标记为答案。
答案是这个django项目,它用于泄漏网站,它将整个文件读入内存然后加密。 http://gitorious.org/deaddrop/deaddrop/blobs/master/drop/views.py
然而,有一种方法可以分块数据
http://docs.djangoproject.com/en/1.3/topics/http/file-uploads/
还有一个问题是httpd处理文件上传并且可以忽略应用程序框架...所以我需要在我确定它正在做什么之前测试它。
然而,说我很确定你可以用wsgi做到这一点我很确定当你使用带有apache的mod_wsgi时django会这样做...不确定其他网络服务器使用什么,我更喜欢使用某些东西更轻盈。
编辑:如果某人确实碰巧严格测试了这一点,并将其作为答案发布,我会将其标记为答案。
答案 2 :(得分:0)
我最终做的是使用mod_wsgi ..
我可以将上传作为流,然后使用PyCrypto对其进行加密 很好地工作
inputLength = int(environ.get('CONTENT_LENGTH', 0))
input = environ['wsgi.input']
f = open(dropDir + '/input','w')
while 1:
remain = inputLength - f.tell()
if remain <= 0: break
chunk = input.read(min(chunksize, remain))
if not chunk: break
f.write(crypt.encrypt(chunk))
f.close()
当我这样做时,我最终使用有状态密码加密整个postdata并将其写入文件,然后在使用GnuPG加密后将密钥保存到另一个文件。