需要通过 https 制作 actionscript POST 数据

Posted

技术标签:

【中文标题】需要通过 https 制作 actionscript POST 数据【英文标题】:Need to make actionscript POST data over https 【发布时间】:2019-06-15 04:46:58 【问题描述】:

我有一个最近获得 AWS 证书的应用程序(并放入了 ELB - 我认为是经典的)。

Web 应用程序有一个 Flash 电影,它发出 Web 调用(到相同的站点 URL),以便使用 Zend Framework 1 模型获取数据。浏览器中的页面不会改变。 当我通过 https 请求站点时,所有导入的项目都已更改为 https 协议,但是当 Flash 电影初始化时,它会通过 http 发出非安全请求。

当我通过 http 或 https 加载网站时,它会发出这些不安全的请求。

我提到 AWS ELB 的原因是因为有人告诉我 ELB 正在执行某种重定向到端口 80。

如果我通过 https 请求站点,并立即在 $_SERVER 数组上执行 print_r,我只会将 HTTPS 视为 REDIRECT 键,而没有看到 $_SERVER['HTTPS'] 集,我认为这很重要。

总之,Zend 1.12 站点内的 Flash 电影通过 http 发出 POST 请求,我希望它发出相同的请求,但通过 https。

这是一部非常古老的 Flash 电影,虽然我用反编译器打开了 swf 文件,但我对 actionscript 了解不多,不知道在哪里(在许多代码文件中)我可以指导这部电影调用 https 而不是 http。

我的理论是,当网站以 SSL/https 正常运行时,flash 电影可能?可能?开始进行 https 调用,因为目前使用地址栏 URL 是“是”,但也可能发生 ELB 重定向的事情,这也把它搞砸了。

更新:我发现(似乎是)证据表明,如果在给出的 URL 中检测到 https,它将发出安全请求...

文件:mx.rpc.remoting.RemoteObject

mx_internal function initEndpoint() : void
  
     var chan:Channel = null;
     if(endpoint != null)
     
        if(endpoint.indexOf("https") == 0)
        
           chan = new SecureAMFChannel(null,endpoint);
        
        else
        
           chan = new AMFChannel(null,endpoint);
        
        channelSet = new ChannelSet();
        channelSet.addChannel(chan);
     
  

谢谢, 亚当

【问题讨论】:

我取得了微小的进步,但这(目前)绝对是一种解决方法。我正在等待我的 OPS 团队的帮助,以诊断在通过 AWS 负载均衡器提供站点后 HTTPS 丢失的原因。取得的进展是我通过将new AMFChannel 更改为new SecureAMFChannel 作为覆盖来强制输入上下文。这是一个我不想留在原地的黑客。所以现在一切正常,但我不想依赖这个 hack。 【参考方案1】:

我能够恢复原始/旧的未经编辑的 Flash SWF 文件,而是修改了传入名为“endpoint”的变量和值的 php 代码。

在我提供的代码示例中,它会检查端点中是否包含 https(我最初认为它确实存在)。

当 HTTP_X_FORWARDED_PROTO 为“https”时,我添加了修改“endpoint”值的代码,示例如下:($request->getBaseUrl() 来自 Zend Framework)。

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') 
    $endpoint  = sprintf(
        '%s://%s%s',
        $_SERVER['HTTP_X_FORWARDED_PROTO'],
        $_SERVER['HTTP_HOST'],
        $request->getBaseUrl()
    );
 else 
       // use existing (and working) value for endpoint

使用该代码,FLASH 电影可以加载并正常运行 网站是否加载了httphttps

【讨论】:

以上是关于需要通过 https 制作 actionscript POST 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Flow制作简单的工作流 - 请假审批3

nginx证书制作以及配置https并设置访问http自动跳转https(反向代理转发jboss)

图标字体制作

通过SRT Hub和Microsoft Azure在云中的广播制作

如何使用CA证书进行https连接

如何制作SSL证书即https服务支持