`
wenbin151
  • 浏览: 32231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SharedObject的安全问题

阅读更多

so的工作原理是,任何地方修改了so,都会马上同步到所有共享(share)此对象(object)的节点,不管是客户端还是服务器。这就带来了两个问题,第一,大家都知道用户的提交是不可信的,未经验证的东西同步到所有共享此对象的节点,其危险性不言而喻;第二,flash是由访问者下载到本地运行的,而且半编译半解释的脚本语言属性令其破解相对别的客户端而言容易了许多,所以不排除会有些人破解客户端然后用hack的客户端达成某种不可告人的目的。

另外一个危险的地方体现在隐私保护上。如果用so实现私聊的话,或者每次都建立一个so,或者在so里面增加toid的标记,但后者有一个问题就是聊天内容始终是向所有连接到此so的用户广播的,因此如果有人怀着不良动机hack了客户端,那么是有可能监听到别人的聊天内容,这也是无法容忍的。

于是有人提出不要使用so,老老实实用客户端调用服务器方法,服务器端再回调目标客户端。不过我觉得这种做法未免太消极,毕竟在多客户端的时候,so无论从时间上海市空间上都要好于方法直通——不然干嘛要做这个东西出来——因此完全可以想其他的方法来保全。

然后稍微写下我的想法。首先,用调用服务器端方法来发言,同时将so设为只读,只能在服务器端修改。调用方法有很严格的变量类型限制,可以用作规范;而在服务器端修改so,又能很方便的同步到其它机器上,问题就解决了。

第二,在页面当中插入聊天flash时增加类似验证码的操作,同时利用跨域策略文件限制,降低其他人使用恶意hack修改过的客户端的可能性。

第三,依照测试的经验,N人以下的会话使用命令直连;N人以上的会话使用so同步,来平均服务器消耗。

分享到:
评论

相关推荐

    Flash的数据处理类SharedObject.pdf

    在这些情况下,使用SharedObject类就可以在本地进行数据存储和处理,无需搭建复杂的网络数据处理系统。 SharedObject类是Flash中用于数据处理的一个非常强大的类,它的功能类似于网页中的Cookie,可以以文件的形式...

    Flash中数据的存储和读取

    由于安全原因,不是所有情况下`SharedObject`都能保存数据。因此,应该始终检查`sharedObject.size`和`sharedObject.flush()`的返回值,以确认数据是否成功保存。 ```actionscript if (so.flush() == false) { ...

    解决启动MongoDB错误:error while loading shared libraries: libstdc++.so.6:cannot open shared object file:

    当尝试启动MongoDB数据库服务时,遇到"error while loading shared libraries: libstdc++.so.6: cannot open shared object file"的错误,这通常意味着系统缺少一个必要的动态链接库——libstdc++.so.6。这是一个C++...

    FLASH小心得

    - **安全性考虑**:为了保护用户隐私,Flash Player对SharedObject的使用有一些限制。例如,不同域或站点之间的SharedObject不能相互访问。 #### 三、Flash在现代网络环境中的地位变化 尽管Flash曾经是网页动画和...

    sqlplus libclntsh.so.11.1 Permission denied 解决方法

    解决 SELinux 文件安全上下文问题 #### 步骤一:检查并更改文件的安全上下文 - 使用 `semanage fcontext` 命令来查看和修改文件的安全上下文。例如: ```bash [root@btbin]# semanage fcontext -a -t textrel_...

    android-sdk-NDK18.1.5063045.rar

    4. 安全编码:遵循C/C++的安全编码规范,避免内存泄漏、缓冲区溢出等问题。 总结,Android SDK NDK18.1.5063045是Android原生开发的重要工具,其更新带来了对新平台的支持和编程语言标准的提升,同时也增强了安全性...

    数据库课程设计&&软件工程课程设计

    同时,了解数据库安全性、备份恢复策略以及事务处理也是必不可少的知识点。 接着,进入“软件工程课程设计”。软件工程强调系统的生命周期管理,包括需求获取、需求分析、系统设计、编码、测试和维护。需求分析阶段...

    libssl.so.10缺失库文件的解决办法.doc

    在Linux系统中,有时在运行某些程序时可能会遇到“error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory”这样的错误提示,这意味着系统缺少名为libssl...

    cpp-轻量级ARMv8AARM64AArch64LittleEndian用于AndroidCC的嵌入式Hook库

    Hook操作往往涉及到内存读写,因此必须确保操作的合法性,避免引发系统崩溃或安全漏洞。 4. **异常处理与兼容性**:由于Hook可能会改变程序原有的执行流程,因此必须妥善处理可能出现的异常情况,如信号处理。同时...

    openSSl,libpng库文件

    本篇文章将深入探讨如何解决Google Play反馈的openSSL和libpng库的安全问题。 首先,让我们来了解一下openSSL。openSSL是一个开源项目,提供了一套强大的加密和证书管理工具,广泛用于实现HTTPS、TLS和SSL协议。当...

    源于FLEX中的安全沙箱问题

    - **用户控制**:普通用户可以管理摄像头和麦克风设置,控制SharedObject(恭喜对象),以及使用用户信任目录。 - **网络站点控制**:通过Crossdomain.xml文件,网站可以定义其他域的访问权限。 - **作者控制**:...

    FLASH与PHP交互参数传递

    - 安全性考虑:遵循HTTP标准,避免跨站请求伪造(CSRF)等安全问题。 总之,Flash与PHP之间的参数传递是Web开发中的重要技术,它使得动态内容和用户交互成为可能。理解并熟练掌握这些方法,能够帮助开发者构建更加...

    实现在客户端的页面缓存

    这种方法依赖于Flash的SharedObject功能,SharedObject是Flash Player在用户计算机上存储数据的一种机制,类似于JavaScript的localStorage或sessionStorage。 具体实现步骤如下: 1. **创建Flash对象**:在HTML...

    人员签到软件

    在这个特定的案例中,软件开发者利用了ActionScript(Flash编程语言)中的SharedObject技术来实现数据存储。 SharedObject是Adobe Flash Player提供的一种功能,允许在本地或网络上存储小量的数据。在人员签到软件...

    利用Flex技术实现消息通讯、账号重复登录、一台电脑只允许一个账号登录等问题

    1. **创建SharedObject**:首先,在Flex应用中创建一个SharedObject实例,该实例可以在多个客户端之间共享数据。 ```as var TextSO:SharedObject = SharedObject.getLocal("text", "1"); ``` 2. **设置回调函数*...

    workspace20100228.rar

    然而,SharedObject的大小有限制,且JavaScript访问SharedObject通常需要通过Flash插件的接口。 6. **XMLSocket和XMLHttpRequest** 对于更复杂的双向通信,ActionScript可以使用`XMLSocket`进行低级的网络通信,而...

    jadx-0.8.0-b639-bf42b975.zip

    **Jadx:强大的Android反编译工具** JADX是一款广受欢迎的Android应用反编译工具,因其...它的易用性和高效性使其在同类工具中脱颖而出,特别是其强大的搜索功能,使得在大量代码中查找特定功能或问题变得轻而易举。

    flash cookie 完整例子(as源码、mvc3.0源码)

    同时,由于隐私和安全问题,用户和监管机构对第三方数据存储的管理也越来越严格。 总之,这个压缩包提供的示例是一个关于如何在Flex 3.0环境中使用ActionScript实现Flash Cookie存储的实践教程。通过研究和理解这些...

    Flash源代码

    对于存储在本地的SharedObject,可以使用`clear()`方法清空其数据。 3. **写入操作**:Flash允许在用户的本地存储数据,如使用SharedObject类来实现。SharedObject是一种轻量级的本地数据存储解决方案,类似于...

    一个用于动态加载共享对象的Swift库-Swift开发

    Symbolic Symbolic使您可以轻松获取有关可执行文件,共享库或静态库的信息。 使用说明:warning:这个库非常不安全。...让libFoo = SharedObject(对象:URL(fileURLWithPath:“ /usr/lib/libfoo.dylib”))

Global site tag (gtag.js) - Google Analytics