【问题标题】:Can you make http client connections from a web app(flash, java)?您可以从 Web 应用程序(flash、java)建立 http 客户端连接吗?
【发布时间】:2009-04-30 18:10:48
【问题描述】:

在我双脚投入并浪费时间学习一些我无法满足我需求的东西之前,我必须问:

我可以从 Java 小程序或 Flash 文件中与另一个网站建立 http 连接吗?

假设我有一个想要从谷歌加载结果的 java 小程序。 JVM 会让我访问这样的调用吗?快闪呢?我已经阅读了有关 URLLoader 的信息,但对此感到困惑:

" * 如果调用文件在本地文件系统沙箱中并且目标资源来自网络沙箱,则不允许数据加载。 * 如果调用文件来自网络沙箱并且目标资源是本地的,也不允许数据加载。”

无论如何,如果不可能,它会在用户身上静默失败还是会请求许可?

非常感谢。

【问题讨论】:

    标签: java flash http applet


    【解决方案1】:

    当然,您可以在 Java 和 Flash 中做到这一点。但是,某些浏览器和环境可能会通过强制安全级别来限制。

    您发现的警告与本地远程有关。对于托管在网络上的 Web 应用程序,您通常可以访问其他网络资源。 (好吧,有些可能会限制您使用“其他”域 - 您需要检查安全模型)

    但现代技术通常建议您结合 JavaScript 来做到这一点。用 Google 搜索“Ajax”并搜索一些最符合您要求的框架 - 这将节省大量时间。

    【讨论】:

      【解决方案2】:

      是的,但问题是出于安全原因,许多浏览器只允许应用程序连接到应用程序所在的域。

      例如,如果我访问网站 A 并且我的应用程序试图访问网站 B,它有时可能会被阻止(例如,为了避免垃圾邮件、攻击等)。如果您控制网站 A,解决方法是在网站 A 上创建一个“传递”脚本,将请求发送到 B。

      【讨论】:

        【解决方案3】:

        我可以从 Java 小程序或 Flash 文件中与另一个网站建立 http 连接吗?

        来自 Flash,是的。您确实需要阅读 Flash 安全模型,以确保您可以问什么,不可以问什么。大多数情况下,这是为了阻止未经授权的访问和/或 XSS 或类似攻击。例如,Flex(一项相关技术)不能让您访问磁盘,而 AIR 可以。任君挑选。

        至于小程序,你得等别人给你解释。但是 AFAIK,它也有一个安全模型,对用户构成的威胁最小。

        【讨论】:

          【解决方案4】:

          Java、JavaScript、Flash 等实施某种形式的“同源”策略,只允许不受信任的代码从下载它的站点读取。解决此问题的一种方法是crossdomain.xml(Google it),自 6u10 以来最新版本的 Flash 和 Java 在某种程度上支持。这允许站点允许通过其他站点下载的代码进行访问。请注意,这需要您要访问的网站授予您这样做的权限。

          【讨论】:

            【解决方案5】:

            不容易。根据定义,Java 沙箱不会让您的小程序调用它的来源以外的其他地方。您必须正确签署您的小程序。然后用户要么信任你的小程序,让它在别处调用,要么拒绝它——这取决于用户。您可以对您的小程序进行自签名,但我个人绝不允许在我的计算机上使用此类内容。这对测试和类似的东西很有用。因此,您可能需要从信誉良好的来源购买证书。和Flash一样,我相信思路是一样的。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-07-04
              • 1970-01-01
              • 2012-05-24
              • 2021-03-03
              • 1970-01-01
              • 1970-01-01
              • 2017-02-23
              • 1970-01-01
              相关资源
              最近更新 更多