首页 新闻 会员 周边 捐助

socket安全性问题

0
[已关闭问题]

第一次做socket项目,有两点安全性的疑问:
1.服务端监听了端口,如果不是我的客户端发送请求过来,比如一个黑客知道我的服务端的IP地址的端口号就不断来请求,怎么区别的请求是否来自我的客户端。
2.数据流在传输的时候会不会备别人获取到

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:38
提问于:2010-03-04 11:37
< >
分享
其他回答(2)
0

我也关注这个问题..

蔚灵 | 园豆:35 (初学一级) | 2010-03-04 11:40
0

1. 你可以对你的数据加密,这样黑客即使攻击了你的端口,也无法攻击你的系统,因为他发送的消息无法被你正确解包,将被你获知这不是你的客户端发过来的消息。

2. 如果黑客在你机器上植入了木马,那你就成透明人了,不光是数据流可以被侦听到,你和你女朋友的悄悄话也逃不过黑客的眼睛。如果仅仅通过网络侦听,除非黑客和你公用一个 Hub (注意是 Hub 不是 Switch) ,或者黑客入侵了你数据包所经过的任何一个路由器。当然也可以通过ARP 欺骗让你发错MAC 地址,不过我总认为网络侦听发生的几率不搞,除非你一不小心拍了某个黑客一砖头并且拒绝道歉,呵呵。

eaglet | 园豆:17139 (专家六级) | 2010-03-04 12:45
0

使用私有的数据包,比如教程上很多都是消息体用特殊符号来分隔,针对这种问题,你可以采用特有的数据格式,也就是针对你的你发送的消息,自己给消息制作完整的包头包校验以及信息进行传递。然后服务器端只针对你的消息进行私有包解析,对完整信息的进行校验,校验通过者服务器做正确解析处理,校验失败就不做处理。

另外的方式就是使用加密数据,把加密后的数据进行传输,比如QQ的消息。

不管是加密的还是采用私有格式的数据,都需要注意一个问题,就是信息的完整性,只有信息传输完整,服务器端才做正确解析,否则不做解析或者做异常处理就好。

信息完整性这个做起来难度还是蛮大的,比如粘包、网络分包等...

西越泽 | 园豆:10775 (专家六级) | 2010-03-04 12:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册