`
wenbin151
  • 浏览: 31645 次
  • 性别: 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同步,来平均服务器消耗。

分享到:
评论

相关推荐

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

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

    object_threadsafe:我们将任何对象的线程安全性和std :: shared_mutex的速度提高10倍,以实现读取率> 85%的无锁算法的速度

    object_threadsafe:我们将任何对象的线程安全性和std :: shared_mutex的速度提高10倍,以实现读取率> 85%的无锁算法的速度

    微軟專家系列:Microsoft Visual Basic 6.0 企业级应用程序开发

    實習4.2:使用Shared Property Manager . 自我評量 5. 從中間層存取資料 . ActiveX Data Object . 以ADO存取資料來源 . 從中間層使用ADO . 由Command物件執行Stored Procedure . 實習5:以ADO執行企業應用...

    《深度探索C++对象模型》(Stanley B·Lippman[美] 著,侯捷 译)

    “指向Members的指针”的效率问题 第4章 Function语意学(The Semantics of Function) 4.1 Member的各种调用方式 Nonstatic Member Functions(非静态成员函数) Virtual Member Functions(虚拟成员函数) Static ...

    微軟專家系列_Microsoft_Visual_Basic_6.0_企業級應用程式開發

    實習4.2:使用Shared Property Manager . 自我評量 5. 從中間層存取資料 . ActiveX Data Object . 以ADO存取資料來源 . 從中間層使用ADO . 由Command物件執行Stored Procedure . 實習5...

    深度探索模C++对象模型PDF

    “指向Members的指针”的效率问题 第4章 Function语意学(The Semantics of Function) 4.1 Member的各种调用方式 Nonstatic Member Functions(非静态成员函数) Virtual Member Functions(虚拟成员函数) Static ...

    深度探索C++对象模型 超清版

    “指向Members的指针”的效率问题 第4章 Function语意学(The Semantics of Function) 4.1 Member的各种调用方式 Nonstatic Member Functions(非静态成员函数) Virtual Member Functions(虚拟成员函数) Static ...

    PHP函数参考手册大全

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

    中文版PHP使用手册

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

    经典收藏最全php5.0查询手册

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

    php手册PHP5研究室编无乱码版本chm

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21....

    PHP手册(带评论版-2008-03-14).part2.rar

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

    计算机网络第六版答案

    HFC, rates up to 42.8 Mbps and upstream rates of up to 30.7 Mbps, bandwidth is shared. FTTH: 2-10Mbps upload; 10-20 Mbps download; bandwidth is not shared. 10. There are two popular wireless ...

    PHP手册(带评论版-2008-03-14).part1.rar

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

    PHP5 完整官方 中文教程

    Object overloading — Object property and method call overloading OCI8 — Oracle 函数 ODBC — ODBC Functions (Unified) ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC) OGG/Vorbis — oggvorbis ...

    PHP5 开发手册 简体中文手册

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

    PHP5中文参考手册

    Object overloading — Object property and method call overloading OCI8 — Oracle 函数 ODBC — ODBC Functions (Unified) ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC) OGG/Vorbis — oggvorbis ...

    进程间通信之共享内存C#源代码

    3.共享内存(Shared Memory) 4.信号量(Semaphore) 5.消息队列(Message Queues) 6.远程过程调用(Remote Procedure Calls, RPC) 7.Mailslot 8.报文传输协议(Message Transfer Protocol, MTP) 9.串行端口...

    php中文完全开发手册

    15. 安全 IV. 特点 16. 用 PHP 进行 HTTP 认证 17. Cookies 18. 文件上传处理 19. 使用远程文件 20. 连接处理 21. 数据库永久连接 22. 安全模式 23. PHP 的命令行模式 V. 函数参考 I. Apache 函数库 II. 数组函数库 ...

    php手册.chm,php手册

    8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV...

Global site tag (gtag.js) - Google Analytics