Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML和Javascript:使用输入文件获取完整目录路径名_Javascript_Html - Fatal编程技术网

HTML和Javascript:使用输入文件获取完整目录路径名

HTML和Javascript:使用输入文件获取完整目录路径名,javascript,html,Javascript,Html,从我的研究中,我知道我不能使用HTML输入文件来获取目录路径名。但是,我尝试了另一种方法,将输入文件的值存储到一个隐藏字段中,并将存储的值传递给后端代码进行进一步处理。 Javascript代码: <script type="text/javascript"> function folder_address() { var address=document.getElementById('folder_address'); var folder=document.ge

从我的研究中,我知道我不能使用HTML输入文件来获取目录路径名。但是,我尝试了另一种方法,将输入文件的值存储到一个隐藏字段中,并将存储的值传递给后端代码进行进一步处理。 Javascript代码:

<script type="text/javascript">
function folder_address()
{
    var address=document.getElementById('folder_address');
    var folder=document.getElementById('folder');
    folder.value=address.value;
}
</script>

函数文件夹_地址()
{
var address=document.getElementById('folder_address');
var folder=document.getElementById('folder');
folder.value=address.value;
}
HTML代码:

<input type="file" id="folder_address" name="folder_address" />
<input type="hidden" id="folder" name="folder" />


但是,我仍然将folder.value作为我选择的文件,而不是该文件的完整目录路径名。我漏掉了什么吗?

这种行为是不能回避的。即使您可以使用脚本/其他字段找到漏洞,该漏洞也可能在将来被删除

我强烈建议设计不依赖于了解用户选择的本地路径

向服务器显示用户的目录结构是一个安全缺陷(想想Windows中的
c:\users\tmedora
;现在你知道我的用户名了)。此外,文件系统可以采用不同的路径格式,用户可以随意命名/重命名目录。我不确定完整路径对服务器有什么价值。除非您处于一个高度受控的环境中,否则无法保证您甚至能够解析路径,更不用说指望它包含一致的信息了

包含完整路径的W3是一个安全漏洞,需要用户代理将字符串
c:\fakepath\
预先添加到文件路径

一些遗留用户代理实际上包含完整路径(这是一个 安全漏洞)

也看到和
还有很多其他功能。

出于安全原因,我认为浏览器根本不允许Javascript使用文件夹路径。在这种情况下,我真的需要编写一个小程序来选择目录吗?你为什么想知道完整路径?现在我们知道你的用户名了。