fakepath について



2025/03/28
この時期になると定期的にこの記事へのアクセスがあります。
エスパーすると… 新社会人さん!学生さん!がんばれっ!



今日、IE8でテストしていると、ファイルのアップロード時に
「c:\fakepath\aaa.txt」 とフォルダ名が「fakepath」となり、「変だっ!」と指摘された。


そこで調べてみたら、IE8では標準として、<input type="file" />タグは、
ディレクトリが正しく表示されないことがわかった。

で、JavaScriptの ".value" で値を取得した時に「fakepath」のディレクトリ名称が
取得できてしまうらしい。
ネットで調べると皆さん「セキュリティーの設定を直す」や「信頼済みサイトに設定してくれ」と 注意、変更依頼を行っています。


そこで問題です。
なぜ、ファイルパスを JavaScriptの".value"で取得する必要があるのでしょうか?

1.<input type="file" />タグは読み取り専用です。
2.参照ボタンも勝手に付いていて、ブラウザがパスを自動生成します。

という事は「ファイルの存在チェック」や「拡張子チェック」はサーバー側でしか出来ない筈なんですよね。
クライアント側のファイルパスなんてサーバ側では意味ないし…
もちろん、VBSなんかを使って無理やりやることは出来ますが…
そういう無理やりな要求を出すんだから、「IE8対応」で金を出させるべき(営業ががんばれ)でしょう。


ま、例外はさておき、普通に作っていたら意識しなくて良かったんですよね。
(表示上の問題はさておき…)


ちょっと思ったのでメモ程度で…



2022/07/12
定期的にこの記事へのアクセスがあります。
記事から6年経ってますが何でしょう…

エスパーすると、上司や顧客から「アップロード前に選択したファイルが正しいか確認したいからパスを出せ!」とか言われてるんじゃないでしょうか。
クライアントPCのフォルダパスを見せるまたは、JavaScript/サーバ側で使える事がセキュリティ上危険だと分かって欲しい物ですね…



2016/08/31
内容は理解して無いが、chrome でも同じです。
.value で何が取れるかは検証してませんが…
セキュリティを考えると、当たり前なんだけどねぇ…


コメント

このブログの人気の投稿

ヨドバシカメラの店舗購入履歴を見るには…

C# の WPF の DataGrid で 行を交互に背景色を変える+選択色を変える+カラムが無い所も変える…

Visual Studio の ホットリロードが動かない場合に確認するところ