首页
社区
课程
招聘
[求助]拦截浏览器发送的Http请求或Http响应
发表于: 2013-5-3 09:12 22043

[求助]拦截浏览器发送的Http请求或Http响应

2013-5-3 09:12
22043
给国家单位开发一个项目,在原有系统上开发一个发送短信的功能。发送短信功能已经实现,但发送短信的时间是有要求的。由于原系统是B/S架构,所有的操作都是在IE浏览器进行的,客户要求当他们处理完一个单据,点击“保存”时,如果保存成功,发送一条短信给客户,该短信内容要包含业务单号。

因为没有原系统的源码,我想到的思路是,监听浏览器的HTTP请求,如果请求的地址正好和“保存”按钮提交的地址一样,我获取HTTP请求的数据包,然后解析出业务单号,并且继续获取该HTTP请求的响应,如果响应结果有SUCCESS字样,那么我通过业务单号构造短信,发送给办理业务的客户。

苦于没有做过类似系统,我查阅了大量资料,说API HOOK,我就是想知道API HOOK真的能做到吗?因为时间有限我没有重新来的机会。或者哪位大哥能提供一份类似拦截的C语言源码呢?参考一下,或者说个思路也行。

谢谢2楼3楼的回复,我表达能力不是很好,情况是这样的,我们当地a单位要求在x系统的基础上开发这个功能,但是全国的a单位都在使用x系统,x系统部署在远程,具体在哪里我就不清楚了,可能是北京或其他地方。我没有权利、也无法接触到服务器的。我只能在我们当地a单位每台客户机上装一个软件来实现数据监听、拦截、解析、发送短信

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (22)
雪    币: 357
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
JS总不可能加密吧,找个API,用JS GET一下就完事,哪里需要这么复杂,
2013-5-3 10:00
0
雪    币: 244
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
假如是.net开发的
http发送请求之后,应该是对方的IIS解析,IIS会调用对用的dll,你可以去分析一下,如果dll简单,可以尝试重写,如果复杂,可以写sql触发器,针对inserted能监视到,但是不知道sql能不能调用发送短信,以前见过sql检测到新加记录,可以发送邮件通知的功能,
其他的就没办法了,.你监视http估计比较麻烦,你只能监视服务器的http数据包出去是否包含SUCCED或者某个特定的数据包
以上仅供参考.
2013-5-3 10:03
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
JS不会加密,但是我没有源码啊,政府单位使用的都是专线,他们项目在服务器上部署着,我如果写JS代码,那我必须得把我的代码放在服务器上。我根本不可能去国家专用服务器上存放我的代码啊
2013-5-3 10:39
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢你的回复,情况是这样的,我们地方的a单位,在使用他们的xx项目,xx项目是部署在远程的,全国所有的的a单位都在使用xx项目,我没有权利去修改服务器的任何东西。现在我只能在我们当地a单位的每台客户机装上我开发的项目,然后通过拦截的方式来判断是否业务办理成功,然后发送短信
2013-5-3 10:44
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
在客户机上面进行发送短信业务,安全吗?然后到客户?
2013-5-3 10:52
0
雪    币: 1039
活跃值: (355)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
B/S 的,你做个中间代理吧。

你们本地的A部门使用X,都经过你的代理,你在代理上可以添加功能了~
2013-5-3 10:57
0
雪    币: 546
活跃值: (1682)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
8
不知道你这个系统用的人多不多,如果用的人多,最好在服务端处理发送短信的过程,你要是在客户端部署的话太麻烦,需要每个用户都安装你写的“监视发送短信的模块”,如果在服务端处理,客户端则无感。
2013-5-3 11:04
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
BHO,拦截这个页面的操作。
2013-5-3 11:07
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
能说的详细点吗?我不太明白,再稍微点点我的榆木脑袋
2013-5-3 11:53
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个是不是浏览器插件?意思是给每个浏览器装一个BHO插件,就可以了吗?
2013-5-3 11:54
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
用的人非常多,全国的a单位都在使用,不仅是我,就是我们当地的a单位也无权操作服务器端的,当地部门为了提高窗口服务质量,才要加发送短信功能的,用户回复1表示满意,回复2表示不满意
2013-5-3 11:56
0
雪    币: 58
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
此种以前告过,可以用SPI 重定向等。。。。。。
2013-5-3 12:43
0
雪    币: 85
活跃值: (46)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
请问x系统是开放给单位内部人员使用的还是开放在单位网站上,供网站浏览客户使用的呀?
首先出于安全考虑,可以将发短信的功能做成WebService放在你们自己单位的服务器上,
1、如果是开放给单位内部人员使用的话可以采用BHO的方式,要求单位内部使用x系统的计算机上安装该BHO。BHO实现在浏览器请求保存的时候后台向发短信的WebService请求发短信。
2、如果x系统是供网站浏览客户使用的,那将你们单位展示给客户的x系统做个中间人拦截处理。即客户访问到的x系统实际上是你们单位的y系统,y系统干两件事:(1)在客户和x系统直接中转数据(2)发现用户请求x系统保存数据时,请求发短信的WebService.
2013-5-3 13:33
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是开放给内部人员使用的,其实是这样的,有人来单位办理税务的时候,窗口工作人员态度不是很好,窗口工作人员使用x系统为客户办理业务。鉴于提高服务质量,领导要求了短信回访功能
2013-5-3 14:18
0
雪    币: 66
活跃值: (203)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
哦,你们这边使用 IE 浏览器登录远程X系统服务器办理业务,业务办理结束之后,由你们这边的客户端下发短信?
13L 说的,SPI 重定向最简单了,而且做到了和浏览器货客户端的无关性,或者你也可以直接做个客户端什么的
2013-5-5 21:37
0
雪    币: 360
活跃值: (127)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
17
其实可以用winpcap做一个嗅探器就可以实现楼主的功能了。监听所有HTTP协议的包,在通过关键字过滤包,就OK了
2013-5-6 00:01
0
雪    币: 380
活跃值: (101)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
18
装个bho,监控“保存”按钮的点击操作,按钮按下时获取表单的相关信息,发短信,完事。
2013-5-8 20:04
0
雪    币: 68
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
哪有这么麻烦,你用apache或者其他软件搞个反向代理服务器,单位所有的人都直接访问你这个代理服务的地址,你代理服务器在吧请求转发到真实服务器ok了,这样你在你的代理服务器上可以监控到所有的数据包,想干啥都可以了
2013-5-9 09:43
0
雪    币: 8236
活跃值: (4191)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
19楼的方法很好,监听通讯包,抓取关键字,不要每台电脑都部署,那样效率低,效果不好。不利于维护!
2013-5-9 15:06
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jpy
21
个人感觉18楼的方法不错,
写个BHO插件,要求相关业务人员安装。
19楼的方法,如果数据有加密就不好办了。
2013-5-9 21:15
0
雪    币: 219
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
API HOOK可以实现
1. 挂钩send()和WSASend()
2. 根据HTTP协议分析缓冲区中的数据,是否是HTTP头部
3. 如果是HTTP头部,则可提取出完整的HTTP请求包了
2013-5-10 10:07
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
简单看了看,用WinPcap或者原始套接字或者Hook的方式获取到包然后再调用私有的短信接口发送短信不就可以了吗
2013-5-10 19:15
0
游客
登录 | 注册 方可回帖
返回
//