代码之家  ›  专栏  ›  技术社区  ›  ALOToverflow

是否可以使此flex/flash应用程序安全?

  •  2
  • ALOToverflow  · 技术社区  · 15 年前

    我又问了一个flex/flash安全问题。我已经收到了 some help from the community 关于这个问题,但我仍然不确定这是最好的方法。

    事情是这样的。一个灵活的Web应用程序,很多用户(1000多人),根据用户组自定义应用程序配置。我能保证这东西的安全吗?或者更安全。

    目前,当用户访问应用程序时,可能只有一个配置,但是对于下一个版本,我们已经实现了一个多配置协议,如下所示:
    1。用户连接到default.aspx,服务器代码处理Windows凭据(whe在Intranet上),并提供正确的XML配置文件。
    2。flex应用程序将XML conf文件作为flashvar加载,然后应用程序用XML文件的内容“构建”自己。

    正如我们所知,由于这是一个灵活的应用程序,SWF也被下载到客户机和XML文件上。如果有多个用户从同一台计算机连接到应用程序,则可能会看到Windows临时文件夹中的另一个XML文件。

    应用程序的当前目录如下所示:

    Web site
        |-> default.aspx
        |-> index.swf 
        |-> configAdmin.xml 
        |-> configUserType1.xml 
        |-> configUserType2.xml 
        |-> com 
             |-> a lot of swf and xml files
    

    我首先考虑创建另一个包含所有配置XML文件的目录(没有客户机的读取权限),选择正确的目录,将其复制到客户机,然后删除它。但似乎我在下载/删除电脑上的内容时必须通知用户…

    我的想法不多了,所以我希望你有一些很棒的想法。这是有一些设计缺陷(在应用程序的构建方式,而不是在flash:p)请分享。我一直期待进步。

    谢谢

    更新: 在浏览器中,flash/flex(没有空气)不允许在本地(在应用程序所在的客户机上)自动删除文件。还不可能获取会话数据。

    3 回复  |  直到 15 年前
        1
  •  1
  •   rook    15 年前

    要解决这个问题,您需要创建一个新的ASPX文件,让我们称之为file_loader.aspx。此ASPX文件将负责对服务器上的任何平面文件进行访问控制。所有文件(如XML文件)都应移到Web根目录之外。当用户连接并登录时,Web应用程序应该知道他们是谁,以及他们可以访问哪些文件。您可以在数据库中为此创建一个表。该表将具有XML文件的路径以及“所有者”或所有者列表。每次flash/flex应用程序想要从文件\u loader.aspx获取新的XML文件时,都应该检查该表。

        2
  •  1
  •   Raj    15 年前

    我建议保存用存储在会话上下文中的(对称)密钥加密的XML文件。这可以是事件序列的一个示例:

    • 登录:为会话生成符号密钥,将其保存在与会话关联的内存中。
    • 加载配置XML,使用会话密钥对其进行加密,并以唯一的名称保存它。将此名称存储在会话中

    当flex应用程序请求配置文件时,请执行以下操作:

    • 在会话中查找文件名。
    • 将加密文件发送到flex

    flex应用程序接收加密文件。然后,它向服务器请求解密密钥(使用httpservice或某些类似的Ajax调用),使用as3crypto对文件进行解密并使用它。

    您应该在注销时从服务器中删除临时加密文件。

    使用这种方法,在服务器端内存中生成密钥,而不写入磁盘。该密钥仅对该登录会话有效,对以后的会话无效。

        3
  •  1
  •   ALOToverflow    15 年前

    感谢所有参与讨论的人。这就是我所做的。

    IIS6对缓存有一些限制,它允许IT客户机保留缓存,修改这些设置可以解决XML文件的问题。

    当用户访问该网站时,服务器会在数据库中查找其ID,如果找到该ID,则会给出相应的文件,否则将重定向用户。