[英]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.