2011-01-04 39 views
4

私はファイルサーバーとWebサーバーを持っています。彼らは物理的に異なるマシン上で動作しています。ファイルをJavascript経由でFTPからダウンロード

JavaScriptを使用してFTPサーバーからファイルをダウンロードしたいと考えています。私がJavaScript経由でそれをやらなければならない理由は、私は外部アプリケーションを持っており、そのアプリケーションにのみJavaScriptを注入できるからです。

基本的には、ftpアドレスのユーザー名とパスワードを指定する必要があります。しかし、私は人々がFTPクレデンシャルを見ることができるので、セキュリティに関して懸念しています。

このようなシナリオを実装する最良の方法は何ですか?あなたの助けのための

おかげ

よろしく

+0

別のアプリケーションにJavaScriptを注入して、強制的にFTP経由でファイルをダウンロードしますか?ちょっと私にアタック・ユーと聞こえる。 –

+0

私たちは何かを攻撃しないでフォームにJavaScriptコードを注入することを可能にする欠陥管理システムを持っています:) – AnarchistGeek

答えて

8

JavascriptがHTTPのみと(新しいブラウザで)WebSocketを、およびないFTPを話します。そのような状況では、クライアント側ですべてを維持するには、実際のFTPプロトコルを処理するFlashまたはJavaアプレットを作成し、インタラクティブ機能を提供するためにJavascriptとインターフェイスする必要があります。

ブラウザをFTPサイトにリダイレクトする予定がない場合は、ユーザ名とパスワードを渡しますか?ユーザーがFTP情報を取得するのを心配しているのですか、または平文FTPの資格情報を傍受しているman-in-the-middle攻撃に関係していますか?

+0

私はサーバサイトスクリプティングを使用して、ftpサイトにユーザをリダイレクトできます。 ftp資格情報を指定した場合、私は資格を取得して攻撃を受けることに関係します。私はサーバー側のスクリプトを使用する唯一の安全な方法だと思います。 – AnarchistGeek

+1

です。あなたの信任状が誰にでも見えるように明確になっていないことを確認する唯一の方法です。 –

1

JavaScriptはFTPをサポートしていません。必要なのは、リモートサーバーにアクセスするためのサーバー側またはより堅牢なクライアント側の言語です。

1

「ダウンロードする」とは、「外部リンクからファイルを保存するようユーザーに促す」という意味です(基本的に、ファイルを指すURLで新しいウィンドウを開くことを意味します)以上。

window.open('http://myserver/get_file/filename'); 

そして、あなたのサーバー側get_fileスクリプトは、FTPに接続するとiframeを作成し、ftp://whateverへのURLの設定についてファイル

+0

あなたは正しいです。ユーザーがリンクをクリックしてローカルにファイルを保存したいと思います。サーバー側なしでそれを行う方法はありませんか?私はasp.netをサーバサイドスクリプトとして使うことができますが、いくつかのファイルは巨大です(1GB以上)...ファイルダイアログとして保存するように定義するのはどこですか?サーバー側で? – AnarchistGeek

0

方法をフェッチするすべての作業をしますか?