通过Javascript从FTP下载文件

8
我有一个文件服务器和一个Web服务器,它们在不同的物理机器上运行。
我想通过JavaScript从FTP服务器下载文件。我必须通过JavaScript来执行此操作,因为我有一个外部应用程序,只能将JavaScript注入该应用程序中。
基本上,我需要指定FTP地址、用户名和密码。但我担心安全问题,因为人们可以查看FTP凭据。
如何实现这种情况的最佳方法?
谢谢您的帮助
敬礼

将JavaScript注入到另一个应用程序中,通过FTP强制其下载文件?听起来有点攻击性。 - Justin Niessner
我们有一个缺陷管理系统,可以让我们将JavaScript代码注入到表单中,不会攻击任何东西:) - AnarchistGeek
4个回答

12

Javascript只支持HTTP和WebSockets(在较新的浏览器上),不支持FTP。在这种情况下,如果您想将所有内容保留在客户端上,您可能需要编写一个处理实际FTP协议并与Javascript接口提供交互性的Flash或Java小程序。

除非您计划将浏览器重定向到FTP网站并传递用户名和密码?您是否担心用户获取FTP信息,或者担心中间人攻击嗅探明文FTP凭据?


1
我可以使用服务器端脚本并将用户重定向到FTP站点。如果我指定FTP凭据,我会担心用户获取凭据以及攻击。我认为唯一安全的方法是使用服务器端脚本。 - AnarchistGeek
1
是的。这是唯一的方法,可以确保您的凭据不会被所有人清楚地看到。 - Alex Vidal

2

JavaScript不支持FTP。您需要使用服务器端或更强大的客户端语言来访问远程服务器。


1
如果你说的“下载”意思是“提示用户从外部链接保存文件”(这基本上意味着打开一个指向文件的 URL 的新窗口),那么你可以直接将用户引导到你可控制的脚本。
window.open('http://myserver/get_file/filename');

而你的服务器端get_file脚本将完成连接到FTP并获取文件的所有工作


你说得对,我希望用户可以点击链接并将文件保存到本地。没有不需要服务器端的方法吗?我可以使用ASP.NET作为服务器端脚本,但是有些文件非常巨大(超过1GB)...那么我在哪里定义“另存为”文件对话框呢?在服务器端吗? - AnarchistGeek

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接