安全删除文件输入的浏览器缓存

时间:2014-03-12 19:22:25

标签: javascript html5 security file-upload browser-cache

我一直在努力解决最近出现的与浏览器安全相关的问题:我想发布一个使用HTML5的capture = camera属性的移动网站。

然而,这些药物中的一些可能会有患者姓名 - 使其受HIPAA保护。当然,我们会通过https将图像数据发送到我们的服务器,并在服务器端正确加密它们。

但是,我们还希望确保从拍摄照片的移动设备上安全删除图像。值得庆幸的是 - 至少 - 以这种方式上传的图像不会添加到设备的“相机胶卷”专辑中。

完整的代码 - 就像现在一样 - 相对简单:

HTML:

     <input type="file" capture="camera" onchange="resizeAndUpload(this.files)">

JAVASCRIPT:

function resizeAndUpload(files)
{
    var img = new Image

    img.onload = function()
    {
        URL.revokeObjectURL(img.src)

        //Use HTML5's Canvas to Resize Picture
        var canvas = document.createElement('canvas')

        canvas.width  = 600
        canvas.height = 800

        var context = canvas.getContext('2d')

        context.drawImage(img, canvas.width, canvas.height)

        ajaxUpload.post('https://oursite', canvas.toDataURL('image/jpeg'))
    }

    img.src = URL.createObjectURL(files[0])
}

正如您现在所看到的,我正在使用revokeObjectUrl,但我想知道原始文件(例如,文件[0])或屏幕外的Canvas是否仍然存在于内存中,持续多长时间以及如何一旦ajax上传完成,我就安全地摆脱它们。

我意识到这些答案需要对(移动?)浏览器有相当深刻的理解。我怀疑答案将取决于浏览器 - 因为安全规范在这些问题上似乎很安静:

http://www.w3.org/TR/html-media-capture/#security

http://www.w3.org/TR/2012/WD-FileAPI-20121025/#security-discussion

理想情况下,会有一种跨浏览器的方法来清除设备上的这些图像的残余物(file-system-api的删除?)。但是我计划将这些设备借给拍照的人,所以如果需要,我可以强制执行特定的操作系统和/或浏览器。

由于 亚当

0 个答案:

没有答案