考虑以下代码段:
(部分(HTML:
<input type="file" accept=".txt" id="theFile" class="button" />
(部分(JavaScript:
$('#theFile').on('change', function(e){
readFile(this.files[0], function(e) {
var text = e.target.result;
})
})
function readFile(file, callback){
var reader = new FileReader();
reader.onload = callback
reader.readAsText(file);
}
我的问题是,使用FileReader
是否存在任何安全风险,尤其是在这种情况下,与readAsText
一起部署时?例如,如果选择的文件不是.txt而是其他文件,会发生什么情况?恶意用户是否有可能以某种方式攻击托管网站?
如果它与问题的目的相关,则完整代码只需从.txt文件中检索文本并将其部分打印到屏幕上。
任何其他细节或所需的信息,我很乐意提供。
是的,你在这里很好,没有安全问题。
-
代码是在用户浏览器中而不是服务器中执行的,因此即使它是恶意的,他们也只会感染自己。
-
上面的代码只是将文件读取为文本,因此即使它是恶意的,也不会被执行。
如果您在创建网站时确实需要小心,就是如果您允许用户上传恶意文件,然后以某种方式允许他们在服务器端执行它们。 一个例子是,如果一个PHP网站没有正确的安全性,你允许他们上传一个糟糕的PHP文件,这个目录可以通过网站获得,然后PHP文件可以由他们在服务器端执行,只需将www.mywebsite.com/upload/danger.php
放入那里的浏览器中。