【问题标题】:Java Applet for File Download without Save-As用于文件下载的 Java 小程序,无需另存为
【发布时间】:2012-04-16 13:07:25
【问题描述】:

背景故事:我们在 Coldfusion (9) 页面上运行了一个小程序,如下所示:

    <APPLET CODE="com/infomentum/appletfile/FileDownload.class" ARCHIVE=FileDownload.jar NAME=FileDownload CODEBASE="/AppletFile/classes" WIDTH=2 HEIGHT=2 MAYSCRIPT>
<PARAM NAME="cabbase" VALUE="/AppletFile/classes/FileDownload.cab">
<PARAM NAME="directory" VALUE="<CFOUTPUT>#sFileDownloadPath#</CFOUTPUT>">
<PARAM NAME="noSaveAllTo" VALUE="true">
<PARAM NAME="noSaveAs" VALUE="true">
<PARAM NAME="noConfirm" VALUE="true">

这个旧小程序来自一家不久前死去的公司——他们停止更新 SSL 证书。呸呸呸。

我四处搜寻,发现了一个名为 MyDownloader 的 java 下载小程序。很好,花花公子,但是这个和我发现的所有应用程序都允许用户选择他们想要保存文件的文件夹。我完全赞成这个(似乎很公平),但由于这种文件传递的性质 - 管理希望文件存储在客户设置帐户的位置,而不是某些笨蛋不小心将其保存到的位置。

不另存为。似乎是合理的要求,但由于相当通用的搜索词(java下载小程序另存为等),我找不到任何东西。我们目前正在 Coldfusion 9 服务器上提供此功能。

非常欢迎任何和所有的见解。

我们也在运行 asp.net 4.0 服务器,但在这方面还没有看到太多进展。

编辑:让我们来回答一些问题 - 很抱歉响应缓慢,我受到了打击(即将发布)。

  1. 原始小程序已签名,但我们购买该小程序的公司现在已被取消,并且未更新证书。所以现在,它是未签名的并且会抛出 SSL 唠叨。原始小程序基本上会说“将此文件保存到 c:\test?确认或取消”,然后将用户发送到成功页面。

  2. 安全风险:将文件保存到客户的本地计算机绝对是一种风险——我曾反对过——但这些都是登录用户为我们的服务付费。显然,如果它是为了恶意使用,那么这样的小程序可能会很糟糕。

  3. @Dale Fraser:这不是新功能(我们的旧小程序就是这样做的) - 但就像我说的,死公司没有更新证书。我会检查一下 Air 小程序 - 虽然一点也不熟悉。

【问题讨论】:

  • 等一下?它保存到本地文件,路径和内容在小程序标签中指定?在html中?没签?任何人都可以把他们想要的东西放在那里吗?您不认为这可能会带来一点安全风险吗? / 如果供应商无法保留当前的代码签名证书(您的意思不是 [只是] SSL,对吗?),它可能无法很好地处理在其产品中发现的漏洞。话虽如此,您可以与时间戳签名服务器一起签名,这将允许签名在证书过期后有效。
  • @TomHawtin-tackline - 我同意,但这是否可以通过 签名的小程序实现?我认为安全限制需要它来执行诸如在没有提示的情况下在本地保存之类的操作。
  • @Leight 小程序已签名,但 HTML 页面未签名。假设是没有人签署不可靠的代码,比如信任未签名的代码/脚本/数据/配置。
  • @TomHawtin-tackline - 好的,明白了。
  • 我用更多信息编辑了 OP,谢谢各位。

标签: java asp.net coldfusion applet download


【解决方案1】:

如果您能找到执行此操作的应用,则它需要是具有本地受信任权限的签名应用。

我认为更好的选择可能是将您的应用程序包装在一个容器中,例如您可以签名的 Air 应用程序,并在用户可以执行的操作方面具有更大的灵活性。

一个网络浏览器只能做这么多,你的要求真的有点太多了。

【讨论】:

  • 大多数签名控件(applet、activex、...)应该能够做到这一点。因此,从技术角度来看,这当然是可能的。它认为这更多的是他们是否可以安全地做到这一点,以及他们是否想自己动手的问题。话虽如此,我同意他们可能希望尽可能远离小程序。
  • 很好奇为什么你们认为放弃签名的小程序是明智的?显然,如果我们有其他东西,我们就不会被一个具有无效证书的小程序卡住 - 但还有其他原因吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 2021-12-13
  • 2013-01-10
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多