2012-03-29 9 views
0

私の研究から、私はHTML入力ファイルを使用してディレクトリパス名を取得できないことを知っています。しかし、私は、入力ファイルの値を隠しフィールドに格納し、格納された値を後処理のためにバックエンドコードに渡す代わりの方法を試しました。 Javascriptコード: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取得します。私は何かを逃しましたか?

+2

セキュリティ上の理由から、ブラウザがJavascriptでフォルダパスを使用できるとは思わないと思います。 – Ivan

+0

その場合、実際にディレクトリを選択するためにアプレットを作成する必要がありますか? – Sakura

+0

なぜフルパスを知りたいのですか? –

答えて

2

この動作は迂回することを意味しません。スクリプト/追加フィールドを使用して抜け穴が見つかったとしても、将来抜け落ちる可能性があります。

ユーザーが選択したローカルパスを知ることに頼らないデザインを強くお勧めします。

ユーザーのディレクトリ構造をサーバーに明らかにするのはセキュリティの欠陥です(Windowsではc:\users\tmedoraと思っていますが、私のユーザー名は分かります)。さらに、ファイルシステムはパスのフォーマットを変更することができ、ユーザーは希望どおりに名前の変更や名前の変更を自由に行うことができます。私は完全なパスがサーバーにどのような価値があるかわからない。あなたが非常に制御された環境にいない限り、一貫性のある情報が含まれていることに留意するだけでなく、パスを解析することさえ保証されません。

フルパスを含むW3 specifically statesはセキュリティ上の脆弱性であり、ユーザーエージェントがファイルパスに文字列c:\fakepath\を追加する必要があります。

一部の従来のユーザーエージェントには実際にフルパス( セキュリティ脆弱性)が含まれていました。

またIE Gives full path, FF gives only filename (or directory browse)How to get the full path of the file from a file inputや他の多くを参照してください。

+3

これであなたのユーザー名はわかりました。 –

+0

ハハ...それはあなたが考えるものです... –

関連する問題