簡體   English   中英

HTML和Javascript:使用輸入文件獲取完整目錄路徑名

[英]HTML and Javascript: getting full directory pathname using input file

從我的研究中,我知道我不能使用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>

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\\到文件路徑。

一些舊版用戶代理實際上包含完整路徑(這是一個安全漏洞)。

另請參閱IE Gives完整路徑,FF僅提供文件名(或目錄瀏覽)以及如何從文件輸入和許多其他文件中獲取文件的完整路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM